更好的常量
定义常量时允许使用之前定义的常量进行计算:
const A = 2;
const B = A + 1;
const B = A + 1;
class C
{
const STR = "hello";
const STR2 = self::STR + ", world";
}
允许常量作为函数参数默认值:
function func($arg = C::STR2)
更好的可变函数参数
用于代替 func_get_args()
function add(...$args)
{
$result = 0;
foreach($args as $arg)
$result += $arg;
return $result;
}
{
$result = 0;
foreach($args as $arg)
$result += $arg;
return $result;
}
同时可以在调用函数时,把数组展开为函数参数:
代码如下:
$arr = [2, 3];
add(1, ...$arr);
add(1, ...$arr);
// 结果为 6
命名空间
命名空间支持常量和函数:
namespace NameSpace {
const FOO = 42;
function f() { echo __FUNCTION__." "; }
}
const FOO = 42;
function f() { echo __FUNCTION__." "; }
}
namespace {
use const NameSpaceFOO;
use function NameSpacef;
echo FOO."
";
f();
}