PHP引用静态变量中的其他静态变量
如何在另一个静态变量中引用静态变量PHP引用静态变量中的其他静态变量,php,Php,如何在另一个静态变量中引用静态变量 class Test{ public static $role = 3; public static $factory = ['role' => self::$role]; } print_r(Test::$factory); 链接: 错误:PHP解析错误:语法错误,意外的“$role”(T_变量),第4行的/home/PpylVI/prog.PHP中需要标识符(T_字符串)您无法将在运行时计算的内容分配给类属性,例如,
class Test{
public static $role = 3;
public static $factory = ['role' => self::$role];
}
print_r(Test::$factory);
链接:
错误:
PHP解析错误:语法错误,意外的“$role”(T_变量),第4行的/home/PpylVI/prog.PHP中需要标识符(T_字符串)
您无法将在运行时计算的内容分配给类属性,例如,在本例中,前一个变量的值
此声明可能包括初始化,但
初始化必须是一个常量值——也就是说,它必须能够
在编译时进行计算,并且不能依赖于运行时
信息,以便进行评估
摘自手册
这两项工作:
<?php
class Test{
const ROLE = 3;
public static $factory = ['role' => self::ROLE];
}
print_r(Test::$factory);
/*Array
(
[role] => 3
)
*/
class Test2{
public static $factory = ['role' => 3];
}
print_r(Test2::$factory);
/*
Array
(
[role] => 3
)
*/
应该是self::$role
或const role=3
与在任何上下文中引用静态变量的方式相同。对我来说,这看起来像一个微不足道的打字错误,你应该抓住它!抱歉,我尝试了self::$role。但它就是不起作用。编辑、编译并亲自查看。完美答案。我注意到,如果我在子类中声明相同的常量,它们就不会发生冲突。谢谢