PHP7 弃用功能

核心:

  • PHP4风格的构造函数将被弃用。(和类名同名的方法视为构造方法,这是PHP4的语法。)
  • 静态调用非静态方法将被弃用。

OpenSSL

capture_session_meta选项将被弃用,可以调用stream_get_meta_data()获得。


PHP4 风格的构造函数

在 PHP4 中类中的函数可以与类名同名,这一特性在 PHP7 中被废弃,同时会发出一个 E_DEPRECATED 错误。当方法名与类名相同,且类不在命名空间中,同时PHP5的构造函数(__construct)不存在时,会产生一个 E_DEPRECATED 错误。

实例

  1. <?php
  2. class A {
  3. function A() {
  4. print('Style Constructor');
  5. }
  6. }
  7. ?>

以上程序执行输出结果为:

  1. Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; A has a deprecated constructor in...

以静态的方式调用非静态方法

以静态的方式调用非静态方法,不再支持:

实例

  1. <?php
  2. class A {
  3. function b() {
  4. print('Non-static call');
  5. }
  6. }
  7. A::b();
  8. ?>

以上程序执行输出结果为:

  1. Deprecated: Non-static method A::b() should not be called statically in...Non-static call

password_hash() 随机因子选项

函数原 salt 量不再需要由开发者提供了。函数内部默认带有 salt 能力,无需开发者提供 salt 值。


capture_session_meta SSL 上下文选项

废弃了 "capture_session_meta" SSL 上下文选项。 在流资源上活动的加密相关的元数据可以通过 stream_get_meta_data() 的返回值访问。