PHP 5.5 新特性

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 关键字

3、foreach 支持 list()

foreach 支持通过 list() 将嵌套数组分离到单独的变量。

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    echo $a.$b\n";
}
?>

4、empty() 支持传入一个任意表达式,而不仅是一个变量

<?php
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

手册

缺点是缺乏互操作性,在需要和其他语言对接时会比较麻烦。

//加密
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);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容