PHP 大会日本 2024

OOP 变更日志

PHP OOP 模型的更改记录在此处。有关这些功能的描述和其他说明记录在 OOP 模型文档中。

版本 描述
8.4.0 添加:支持 延迟对象
8.1.0 添加:支持 final 修饰符用于类常量。此外,接口常量默认情况下可被覆盖。
8.0.0 添加:支持 空安全运算符 ?-> 用于访问可能为 null 的对象的属性和方法。
7.4.0 更改:现在可以在 __toString() 中抛出异常。
7.4.0 添加:支持有限的返回类型协变和参数类型逆变。仅当使用自动加载时,才支持完全变体。在单个文件中,仅允许非循环类型引用。
7.4.0 添加:现在可以为类属性指定类型。
7.3.0 不兼容性:具有非 int 键的 Traversable 的参数解包不再受支持。此行为并非预期,因此已删除。
7.3.0 不兼容性:在以前的版本中,可以通过分配引用来分离静态属性。这已被删除。
7.3.0 更改:instanceof 运算符现在允许字面量作为第一个操作数,在这种情况下,结果始终为 false
7.2.0 已弃用:__autoload() 方法已弃用,取而代之的是 spl_autoload_register()
7.2.0 更改:以下名称不能用于命名类、接口或特性:object
7.2.0 更改:现在可以在命名空间的 group-use 语法中添加尾随逗号。
7.2.0 更改:参数类型扩展。现在可以省略覆盖方法和接口实现中的参数类型。
7.2.0 更改:当抽象类扩展另一个抽象类时,现在可以覆盖抽象方法。
7.1.0 更改:以下名称不能用于命名类、接口或特性:voiditerable
7.1.0 添加:现在可以指定 类常量的可见性
7.0.0 已弃用:对未声明为静态的方法进行 静态 调用。
7.0.0 已弃用:PHP 4 样式的 构造函数。即与定义它们的类同名的函数。
7.0.0 添加:组 use 声明:从同一命名空间导入的类、函数和常量现在可以在单个 use 语句中组合在一起。
7.0.0 添加:通过 new class 添加了对 匿名类 的支持。
7.0.0 不兼容性:迭代非 Traversable object 现在将具有与迭代按引用 array 相同的行为。
7.0.0 更改:在两个使用的 特性 中定义(兼容)属性不再触发错误。
5.6.0 添加:__debugInfo() 方法。
5.5.0 添加:::class 魔术常量。
5.5.0 添加:finally 用于处理异常。
5.4.0 添加:特性
5.4.0 更改:如果 抽象 类为 构造函数 定义了签名,则现在将强制执行该签名。
5.3.3 更改:与 命名空间 类名最后一个元素同名的函数将不再被视为 构造函数。此更改不影响非命名空间类。
5.3.0 更改:实现具有原型中默认值的函数的接口的类不再需要匹配接口的默认值。
5.3.0 更改:现在可以使用变量引用类(例如,echo $classname::constant;)。变量的值不能是关键字(例如,selfparentstatic)。
5.3.0 更改:如果魔术 重载 方法声明为 静态,则会发出 E_WARNING 级别错误。它还强制执行公共可见性要求。
5.3.0 更改:在 5.3.0 之前,在 __autoload() 函数中抛出的异常无法在 catch 块中捕获,并且会导致致命错误。现在,在 __autoload 函数中抛出的异常可以在 catch 块中捕获,但有一个前提条件。如果抛出自定义异常,则自定义异常类必须可用。__autoload 函数可以递归地用于自动加载自定义异常类。
5.3.0 添加:__callStatic 方法。
5.3.0 添加:heredocnowdoc 支持类 const 和属性定义。注意:heredoc 值必须遵循与双引号字符串相同的规则(例如,内部没有变量)。
5.3.0 添加:延迟静态绑定
5.3.0 添加:__invoke() 方法。
5.2.0 更改:__toString() 方法仅在直接与 echoprint 组合时才会被调用。但现在,它在任何 string 上下文中都被调用(例如,在 printf() 中使用 %s 修饰符),但在其他类型上下文中不会被调用(例如,使用 %d 修饰符)。从 PHP 5.2.0 开始,将没有 __toString 方法的 object 转换为 string 会发出 E_RECOVERABLE_ERROR 级别错误。
5.1.3 更改:在以前的 PHP 5 版本中,使用 var 被认为已弃用,并且会发出 E_STRICT 级别错误。它不再弃用,因此不会发出错误。
5.1.0 更改:var_export() 导出的类的 __set_state() 静态方法现在会被调用。
5.1.0 添加:__isset()__unset() 方法。

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top