PHP 只读属性或常量?

Phi*_*hil 8 php properties constants php-8.1

从 PHP 8.1 开始,原生支持只读属性。但我们已经有了可见性常数。

请帮我回答这两个问题:

  1. 使用常量和属性之间有哪些区别?
  2. 什么时候使用哪一个?

Phi*_*hil 5

写法的区别

一个很大的区别是,您无法在运行时动态设置类常量,而您可以使用只读属性(从构造函数)来做到这一点。

读法上的差异

访问两者的方式也存在很大差异。除非属性是静态的,否则您将需要一个实例(并且所有实例都可以有不同的值),而常量始终可以在没有实例的情况下访问。

支持M. Eriksson