-->

PHP资讯

您的当前位置:首页 > 资讯 > PHP基础

php小技巧二

2020-11-16 09:27:52  来源:admin 点击:463

判断大小语句

 

<?php

 

function compare(int $a, int $b): int

{

    if ($a === $b) {

        return 0;

    }

 

    return $a > $b ? 1 : -1;

}

改写为

<?php

 

function compare(int $a, int $b): int

{

    return $a <=> $b;

}

Null 合并运算符

 

<?php

 

$array = ['a' => 0, 'b' => false, 'c' => null, 'd'];

 

if (is_null($array['c'])) {

    $array['c'] = 'c is null';

}

 

if ($array['d'] === null) {

    $array['d'] = 'd is null';

}

 

改写为

<?php

 

$array = ['a' => 0, 'b' => false, 'c' => null, 'd'];

$array['c'] ??= 'c is null';

$array['d'] ??= 'd is null';

方法参数变短

 

方法参数变短的风险时增加了调用的难度,所以注释就很必要了。不过带来的好处时,方法的复用性远甚固定参数。尤其适合重构的场景,比如:之前的方法(N 多的地方调用这个方法)多加一个参数 就可以处理 现在的逻辑 的场景,我想你一定会遇到过,如果没有遇到过,别着急,迟早的事。

 

<?php

 

function test(string $a, string $b, string $c, string $d, string $e, array $f, bool $g = false)

{

    var_dump($a, $b, $c, $d, $e, $f, $e);

}

改写为

function test(...$args)

{

    var_dump($args);

}

 

// 或者

 

function test()

{

    var_dump(func_get_args());

}

更加优雅的预定义变量

 

<?php

 

function test(array $array, bool $printed = false): array

{

    $a = '';

    $b = [];

    $c = false;

    $d = 0;

    $e = new \stdClass();

 

    // TODO: 处理...

 

    $result = doSomething();

 

    return $result ?: [];

}

改写为

<?php

 

function test(array $array, bool $printed = false): array

{

    [$a, $b, $c, $d, $e] = ['', [], false, 0, new \stdClass()];

 

    // TODO: 处理...

 

    $result = doSomething();

 

    return $result ?: [];

}


相关文章更多 >

© 2024版权所有 水水网

电话:171780793