PHP7标量类型声明
在PHP7,一个新的功能,标量类型声明已被引入。标量类型声明有两种选择方式
- 一般方式 - 默认模式
- 严格模式 - 严格模式有明确的暗示
示例 - 一般模式
1 | function sum(int ...$ints){ |
示例 - 严格模式
1 | declare(strict_types = 1); |
空合并运算符
1 | $name = $name ?? "NoName"; // 如果$name有值就取其值,否则设$name为“NoName” |
飞船操作符
它是用于比较两个表达式。当第一个表达式比第二个表达式分别小于,等于或大于时,它分别返回-1,0或1
1 | print(1 <=> 1);print("<br/>"); // 0 |
PHP常量数组
数组常量现在可以使用define()函数定义。在PHP5.6,它们只能使用const关键字定义。
1 | // define a array using define function |
PHP7匿名类
在php7中,匿名类现在可以使用new class 来到定义。匿名类可以使用来代替完整的类定义。
1 | interface Logger { |
PHP7 use语句
从PHP7起,单次使用use 语句可以用来从同一个命名空间导入类,函数和常量(而不用多次使用use语句)。
1 | // Before PHP7 |
PHP7 一次捕捉多种类型的异常 / 错误
PHP 7.1 新添加了捕捉多种异常/错误类型的语法 – 通过竖杠“|”来实现。
1 | try { |
PHP7整数除法
PHP7引入了intdiv()的新函数,它执行操作数的整数除法并返回结果为 int 类型
1 | $value = intdiv(10, 3); |
PHP7废弃的功能
PHP4风格的构造函数
PHP4式构造函数,它与类的名称相同,现在已过时,并且将在未来被移除。PHP7将发出
E_DEPRECATED。类实现构造函数__construct()方法不受影响。
1 | class A { |
静态调用非静态方法
非静态方法静态调用已弃用,并且可能在将来被移除。
1 | class A { |
password_hash() - salt选项
password_hash()函数的salt选项已被弃用,使开发人员不会产生他们自己的(通常是不安全的)salt。函数本身生成一个加密的安全salt,在开发者没有提供salt值时 , 因此定制salt生成不再需要了。