如何在类构造函数中定义常量?

EEk*_*EEk 7 php class constants

我可以在类构造函数中定义一个类常量吗?

(根据某些条件)

chi*_*org 11

这违背了类常量的概念 - 它们不应该依赖于特定的实例.您应该使用变量.

但是,如果您坚持这样做,非常冒险并且可以安装PHP扩展,您可以查看允许在运行时修改类及其常量的runkit扩展.请参阅此文档:http://www.php.net/manual/en/function.runkit-constant-add.php

  • 我正在寻找可以在构造函数中设置的 java 的 `static final` 等价的 php,但不幸的是,在 php 中常量有点不同。 (2认同)
  • 我不认为“类常量”意味着静态。拥有非静态类常量是一个有效的概念。不幸的是,PHP 在这方面似乎受到限制,并且没有相应的语法/行为。在像 C++ 这样的语言中,拥有实例级常量是很常见的。它们必须通过初始化列表设置,但您可以使用其他变量、构造函数参数甚至函数来设置初始值。这非常有用,希望 PHP 有朝一日能解决这个问题。 (2认同)