Php/docs/language.oop5.changelog
OOP 变更日志
这里只记录了 PHP OOP 模型的变更记录。有关变更功能的具体描述与其他相关注意事项,可以到具体的 OOP 文档链接中查看。
版本 | 说明 |
---|---|
7.4.0 | 已变更:可以通过 __toString() 抛出异常。 |
7.4.0 | 增加:Support for limited return type covariance and argument
type contravariance. Full variance support is only available if autoloading is used. Inside a single file only non-cyclic type references are possible. |
7.4.0 | 增加:可以给类属性增加类型。 |
7.3.0 | 不兼容:Argument unpacking of
Traversables with non-int keys is no longer supported. This behaviour was not intended and thus has been removed. |
7.3.0 | 不兼容:在以前的版本中,可以通过分配一个引用来分离静态属性,这一特性已被移除。 |
7.3.0 | 已变更:The instanceof
operator now allows literals as the first operand, in which case the
result is always |
7.2.0 | 废弃:__autoload() 方法已被废弃,请使用 |
7.2.0 | 已变更:object 做为保留关键字,不允许做为
classes、interfaces、traits 的名称。 |
7.2.0 | 已变更:分组引入命名空间时,允许行尾添加多余的逗号分隔符。 |
7.2.0 | 已变更:Parameter type widening. Parameter types from overridden
methods and from interface implementations may now be omitted. |
7.2.0 | 已变更:当一个抽象类(abstract class)继承另一个抽象类时,抽象的方法现在可以被覆写。 |
7.1.0 | 已变更:增加系统保留关键字 void 和 iterable ,不允许做为
classes、interfaces、traits 的名称。 |
7.1.0 | 增加:类常量增加了 |
7.0.0 | 废弃:对未声明为静态的方法(Static)的静态调用。 |
7.0.0 | 废弃:PHP 4 风格的构造函数 constructor 已被废弃。 |
7.0.0 | 增加:Group use declaration: classes, functions
and constants being imported from the same namespace can now be grouped together in a single use statement. |
7.0.0 | 增加:使用 new class 语法来支持
匿名类。 |
7.0.0 | 不兼容:Iterating over a non-Traversable
object will now have the same behaviour as iterating over by-reference arrays. |
7.0.0 | 已变更:traits 里定义兼容的属性不再产生错误信息。 |
5.6.0 | 增加: __debugInfo() 方法。 |
5.5.0 | 增加: ::class 魔法常量。 |
5.5.0 | 增加: finally 来处理异常。 |
5.4.0 | 增加: traits。 |
5.4.0 | 已变更:如果一个抽象 类定义了
构造函数 的签名,它将必须被实现。 |
5.3.3 | 已变更: 命名空间 中和类同名的方法不再被作为 构造函数。这个变更不影响非命名空间中的类。 |
5.3.0 | 已变更:类实现接口的方法所具有的默认值不再需要和接口的默认值一致。 |
5.3.0 | 已变更: 现在它也能够通过一个变量来引用一个类(例如,echo $classname::constant; )。
这个变量的值不能是一个保留关键词(比如, |
5.3.0 | 已变更: 如果重载方法被定义为 static 将导致一个 E_WARNING 级别的错误。
同时它也需要强制使用 public 的可见性。 |
5.3.0 | 已变更: 在 5.3.0 之前的版本,__autoload() 函数里抛出的异常不能被 catch 块结构捕获,并会导致一个致命错误。
现在在一个前提下 catch 块能够捕获 __autoload 函数中抛出的错误。如果抛出一个自定义异常,这个自定义异常的类必须是可用的。否则 __autoload 函数可能递归自动加载这个自定义异常类。 |
5.3.0 | 新增: __callStatic 方法。 |
5.3.0 | 新增: heredoc
和 nowdoc 支持类的 常量 和属性的定义。 注意:heredoc 值必须和双引号字符串遵循同样的规则(比如,变量将被替换)。 |
5.3.0 | 新增: 后期静态绑定。 |
5.3.0 | 新增: __invoke 方法。 |
5.2.0 | 已变更:__toString 方法仅在直接与 echo 或 print 使用时被调用。但是现在它能在任何字符串上下文被调用(比如在 printf() 中使用 %s ),但不是在其他类型的上下文被调用(例如 %d 修饰符)。
自 PHP 5.2.0 起,将不具有 __toString 方法的对象转化为字符串将导致一个 |
5.1.3 | 已变更:在 PHP 5 之前的版本,var 的使用已被废弃,并将产生一个 E_STRICT 级别的错误。现在它不再被废弃,因此也不会产生错误。
|
5.1.0 | 已变更:现在 __set_state 静态方法在 var_export() 导出类时会被调用。 |
5.1.0 | 新增:__isset 和 __unset 方法。 |