公司是用PHP7的,这几天总结了下PHP7 的新特性:
1、合并运算符
某些时候可以简化 三元运算符;
$name = $name ?? '张琦'; // 意思是,$name 如果 定义了 并且 值不为 null ,就用 $name 原来的值,否则 值就为 张琦
2、通过 define 定义常量数组
define('language', ['php', 'java', python', 'C#']);
echo language[0]; // 结果为 php
3、一个 use 可以导入同一 namespace 下的 类
// PHP7之前的用法:
use name\zq;
use name\xx;
use name\longlong as l;
// PHP7之后的用法:
use name\{zq,xx,longlong as l};
4、unserilize 提供了第二个参数,过滤,让数据更安全;通过白名单的方式来防止潜在的代码注入
默认 第二个参数的值为 ['allowed_classes' => true]
<?php
class MyClass
{
public $attr;
}
$obj1 = new MyClass();
$obj1->attr = 1;
$serializedObj = serialize($obj1);
$data1 = unserialize($serializedObj, ['allowed_classes' => true]);
$data2 = unserialize($serializedObj, ['allowed_classes' => false]);
$data3 = unserialize($serializedObj, ['allowed_classes' => ['MyClass']]);
echo "<pre>";
print_r($data1);
print_r($data2);
print_r($data3);
结果是:
MyClass Object
(
[attr] => 1
)
__PHP_Incomplete_Class Object
(
[__PHP_Incomplete_Class_Name] => MyClass
[attr] => 1
)
MyClass Object
(
[attr] => 1
)
自己揣摩揣摩。
5、随机数/字符 产生函数
$num = random_int($min,$mix) // 产生 $min <= $num <= $mix 的数
$str = random_bytes(int) // 产生随机的 ASCII字符
6、intdiv 函数 (对除法结果取整)
【未完待续···】
更多PHP7新特性,请点击这里:
http://blog.csdn.net/ldx904202509/article/details/52517949