yield关键字用于当函数需要返回一个迭代器的时候, 逐个返回值。
{ for($i = 1; $i <= 10; $i += 1) yield $i; }该函数的返回值是一个数组:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] list() 用于 foreach可以用 list() 在 foreach 中解析嵌套的数组:
$array = [ [1, 2, 3], [4, 5, 6], ]; foreach ($array as list($a, $b, $c)) echo "{$a} {$b} {$c}\n";结果:
1 2 3 4 5 6 细节修改不推荐使用 mysql 函数,推荐使用 PDO 或 MySQLi, 参见前文。
不再支持Windows XP.
可用 MyClass::class 取到一个类的完整限定名(包括命名空间)。
empty() 支持表达式作为参数。
try-catch 结构新增 finally 块。
PHP5.6 更好的常量定义常量时允许使用之前定义的常量进行计算:
const A = 2; const B = A + 1; class C { const STR = "hello"; const STR2 = self::STR + ", world"; }允许常量作为函数参数默认值:
= C::STR2) 更好的可变函数参数用于代替 func_get_args()
) { $result = 0; ) $result += $arg; return $result; }同时可以在调用函数时,把数组展开为函数参数:
$arr = [2, 3]; add(1, ...$arr); // 结果为 6 命名空间命名空间支持常量和函数:
namespace Name\Space { const FOO = 42; { echo __FUNCTION__."\n"; } } namespace { \Space\FOO; \Space\f; echo FOO."\n"; f(); }