运算符(NULL合并运算符)
$a = $_GET['a']??1;
//相当于
$a = isset($_GET['a'])?$_GET['a']:1
//三元运算符是可以这样用的
$a = $a?:1;
函数返回值类型声明
//指定返回值为整形
function getSum(array $a):int
{
return array_sum($a);
}
需要注意的时,PHP7增加了declare指令:strict_types,即使用严格模式
强制模式:
function foo($a):int
{
return $a;
}
echo foo(1.0);//输出1,因为指定了返回值类型为整形
严格模式:
declare(strict_types=1);
function foo($a):int
{
return $a;
}
foo(1.0);//输出致命错误:#PHP Fatal error。因为是严格模式,强制转换就会报错
标量类型声明
PHP7中的函数的形参类型声明可以使标量了,可以使用string、int、float和bool
//指定形参为整形
function foo(int $a)
{
return $a;
}
//如果时严格模式,对不符合预期的参数进行强制类型转换,会触发TypeError致命错误
use批量声明
PHP7中use可以在一句话中声明多个类或函数或const了
use some/namespace/{ClassA,ClassB,ClassC as C};
use function some/namespace/{fn_a,fn_b,fn_c};
use const some/namespace/{ConstA,ConstB,ConstC};
define('ANIMALS',['dog','cat','bird']);
echo ANIMALS[1];//输出 cat