PHP 7.4 中增加了类型化类属性,对 php 的类型系统进行了重大改进。这些更改完全是自愿加入的,不会破坏以前的版本。
在本文中,我们将深入了解该功能,但首先让我们总结一下最重要的几点:
700粉丝福利安排一波,工作中准备的,大家随便拿
这些更改自 PHP 7.4 起可用,计划于 2019 年 11 月发布
-
它们仅在类中可用,并且需要访问修饰符:public、protected 或 private;或 var
-
允许所有类型,但 void 和 callable 除外
-
他们的实际情况是这样的:
class Foo
{
public int $a;
public ?string $b = 'foo';
private Foo $prop;
protected static string $static = 'default';
}
未初始化
在进入正题之前,首先要探讨一个与类型属性有关的重要方面。
不管你第一眼看到这段代码是怎么想的,但它的确是合法的
class Foo
{
public int $bar;
}
$foo = new Foo;
即便是类的实例化后 b a r 值 仍 不 是 整 数 值 的 情 况 下 , P H P 也 只 是 会 在 访 问