1、新增 Generators
yield关键字用于当函数需要返回一个迭代器的时候,逐个返回值。
function number10() { for($i = 1; $i <= 10; $i += 1) yield $i; }
该函数的返回值是一个数组:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2、新增 finally 关键字
Finally处理流程:
3、foreach 支持 list()
foreach 支持通过 list() 将嵌套数组分离到单独的变量。
$array = [ [1, 2], [3, 4], ]; foreach ($array as list($a, $b)) { echo $a.$b\n"; }
4、empty() 支持传入一个任意表达式,而不仅是一个变量
function always_false() { return false; } if (empty(always_false())) { echo 'This will be printed.'; }
5、直接通过下标获取访问数组和字符串字面量的元素或字符
``` echo [1, 2, 3][0]; // 1 echo 'PHP'[0]; // P ```
6、新的密码哈希 API
https://php.net/manual/zh/book.password.php
缺点是缺乏互操作性,在需要和其他语言对接时会比较麻烦。
//加密 echo $hash = password_hash('rasmuslerdorf', PASSWORD_DEFAULT); //输出结果类似于:$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a //验证 if(password_verify('rasmuslerdorf','$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a')) { echo "密码正确"; } else { echo "密码错误"; }
7、新增 boolval() 函数
PHP已经实现了strval、intval和floatval的函数。为了达到一致性将添加boolval函数。
8、新增 array_column() 函数
可用来返回数组中指定的一列。
$records = array( array('id' => 2135,'name' => 'John'), array('id' => 3245,'name' => 'Smith'), array('id' => 5342,'name' => 'Peter') ); //从结果集中取出 name 列 $names = array_column($records, 'name'); print_r($names); //从结果集中总取出 name 列,用相应的 id 作为键值 $names = array_column($records, 'name', 'id'); print_r($names);
转载请注明:隨習筆記 » PHP 5.5 新特性