OOP 变更日志
PHP 5 OOP 模型的变更将被记录在此。功能的描述与其他相关注意事项记录在了 OOP 5 文档之中。
版本 | 说明 |
---|---|
7.0.0 | Trait 里定义兼容的属性不再产生错误信息。 |
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;)。这个变量的值不能是一个保留关键词(比如,self、parent或static)。 |
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方法的对象转化为字符串将导致一个E_RECOVERABLE_ERROR 级别的错误。 |
5.1.3 | 已变更:在 PHP 5 之前的版本,var的使用已被废弃,并将产生一个E_STRICT 级别的错误。现在它不再被废弃,因此也不会产生错误。 |
5.1.0 | 已变更:现在__set_state静态方法在var_export()导出类时会被调用。 |
5.1.0 | 新增:__isset和__unset方法。 |