1、使用表达式定义常量
在 PHP5.5.x 之前的版本中, 必须使用静态值来定义常量,声明属性以及指定函数参数默认值。 而 PHP5.6.X 之后可以使用包括数值、字符串字面量以及其他常量在内的数值表达式来 定义常量、声明属性以及设置函数参数默认值。
PHP5.6.X 可以通过 const 关键字来定义数组类型的常量。
2、使用 ... 运算符定义变长参数函数
PHP5.6.X 可以不依赖 func_get_args(), 使用 ... 运算符 来实现 变长参数函数。
使用 ... 运算符进行参数展开
在调用函数的时候,使用 ... 运算符, 将 数组 和 可遍历 对象展开为函数参数。 在其他编程语言,比如 Ruby中,这被称为连接运算符。
3、use function 以及 use const
use 运算符 被进行了扩展以支持在类中导入外部的函数和常量。 对应的结构为 use function 和 use const。
4、使用 hash_equals() 比较字符串避免时序攻击
在 php 中比较字符串相等时如果使用双等 == 可能会有时序攻击的危险.
比如,比较:
"abscdd" == $request->code;
那么两个字符串是从第一位开始逐一进行比较的,发现不同就立即返回 false,那么通过计算返回的速度就知道了大概是哪一位开始不同的,这样就可以按位破解。
而使用 hash_equals 比较两个字符串,无论字符串是否相等,函数的时间消耗是恒定的,这样可以有效的防止时序攻击。
hash_equals('abscdd',$request->code);