0

PHP 8.1 引入了readonly类属性。例如,在我写之前:

class User
{
    public string $name;

    public function __construct(string $name) {
        $this->name = $name;
    }

    public getName(): string {
        return $this->name;
    }
}

但现在我可以这样做:

class User
{
    public function __construct(
        public readonly string $name,
    ) {}
}

后者显然更紧凑,所以我想知道这种语法是否完全取代了每个用例的前者,还是仍然存在应该首选“旧”语法的情况?

4

1 回答 1

0

“旧”方式的一个优点是您可以为 getter 和 setter 选择不同的访问级别,而一个readonly字段只有一个访问级别。例如,当您希望您的二传手成为protected.

使用 getter 的另一个优点是它允许您在不更改类接口的情况下更改实现。

于 2022-01-10T10:06:19.940 回答