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:未完待续