php7.* 新特性

null合并运算符
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
$username = $_GET['user'] ?? 'nobody'; // 等同于上句操作
// 合并操作
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';

定义常量
define('IT', ['sina', 'baidu', 'tencent']);
echo IT[0]; // sina

// php7中增加了标量类型声明,分为两种模式,强制(默认),严格模式;
// ... 可变数量的参数 5.6添加
// declare(strict_types=1); 1:严格模式,0:弱类型(默认)
// declare(strict_types=0); 当为1时会报参数错误
// 标量类型声明,参数声明为 int
function sumOfInts(int ...$ints)
{
  return array_sum($ints);
}
var_dump(sumOfInts(2, 3, 4.1)); // int(9)

// 返回类型声明,返回类型声明为string
function sumOfInts(int ...$ints) : string
{
  return array_sum($ints);
}
var_dump(sumOfInts(2, 3, 4.1)); // string(1) "9"


// 太空船操作符(组合比较符)
// 太空船操作符用于比较两个表达式。当$a小于、等于或大于$b时它分别返回-1、0或1
// 可用配合排序使用

echo 1 <=> 1; // 相等 0
echo "\r\n";
echo 1 <=> 2; // 小于 -1
echo "\r\n";
echo 1 <=> 0; // 大于 1

$things = [
    [
        'foo' => 2,
        'bar' => 'b'
    ],
    [
        'foo' => 3,
        'bar' => 'c'
    ],
    [
        'foo' => 1,
        'bar' => 'a'
    ]
];

usort($things, function ($a, $b) {
    return $a['foo'] <=> $b['foo'];
});
print_r($things);
Array
(
    [0] => Array
        (
            [foo] => 1
            [bar] => a
        )
    [1] => Array
        (
            [foo] => 2
            [bar] => b
        )
    [2] => Array
        (
            [foo] => 3
            [bar] => c
        )

)

 

TODO:未完待续

posted @ 2021-03-10 18:11  蓝晓焰  阅读(95)  评论(0编辑  收藏  举报