标量类型与返回值类型声明
标量类型声明 有两种模式: 强制 (默认)
和 严格模式
。
强制模式
1 | // 强制模式 |
严格模式
1 | // 严格模式 |
返回类型声明
1 | function arraysSum(array ...$arrays): array |
null合并运算符
日常使用中存在大量同时使用三元表达式和 isset()的情况, 我们添加了null合并运算符 (??) 这个语法糖。如果变量存在且值不为NULL, 它就会返回自身的值,否则返回它的第二个操作数。
原来
1 | $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; |
新写法
1 | $username = $_GET['user'] ?? 'nobody'; |
太空船操作符(组合比较符)
太空船操作符用于比较两个表达式。当$a小于、等于或大于$b时它分别返回-1、0或1。
1 | // 整数 |
常量数组
1 | define('ANIMALS', ['dog','cat','pig','bird']); |
匿名类
现在支持通过new class
来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义。
1 | # 定义一个接口,后续实现 |
过滤 unserialize()
PHP 7 增加了可以为 unserialize() 提供过滤的特性,可以防止非法数据进行代码注入,提供了更安全的反序列化数据。
1 | class MyClass1 { |
整数除法函数 intdiv()
1 | # 新加的函数 intdiv() 用来进行 整数的除法运算。 |