每天学习一点点,成功增加一大步

PHP 5.5 新特性

PHP zhanghui 431℃

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 新特性