【发布时间】:2020-09-26 14:37:30
【问题描述】:
我想将count 的结果分配给常量。这是我想要实现的一个示例:
class A
{
private $a = count('Hello'); # PHP Fatal error: Constant expression contains invalid operations
}
$a = new A();
echo $a->a;
C++ 中的等效工作:
#include <iostream>
class A
{
public:
const int a = sizeof("Hello");
};
int main(void)
{
A a = A();
std::cout << a.a << std::endl;
return 0;
}
有没有什么方法可以在 PHP 中实现这一点,而无需使用构造函数或从类外部调用方法?
【问题讨论】:
-
count真的是你需要使用的功能吗?将其分配给类属性对我来说没有多大意义——在编译时,值总是完全相同的,所以为什么不直接使用数字呢? -
@iainn 因为我打算用它来分配另一个数组常量的计数。这将确保我的成员在我添加或删除数组中的项目时始终具有正确的计数。
-
我会说那是调用代码的责任。如果你想要的是数组常量的计数,你写
count(ClassName::ARRAY_CONST),而不是不同的常量。一个类不负责以各种不同的格式提供它的数据,它只需要提供它。