如何在另一个静态变量中引用静态变量?
class Test{
public static $role = 3;
public static $factory = ['role' => self::$role];
}
print_r(Test::$factory);
错误:PHP Parse error: syntax error, unexpected '$role' (T_VARIABLE), expecting identifier (T_STRING) in /home/PpylVI/prog.php on line 4
答案 0 :(得分:4)
你无法向运行时评估的类属性,例如,前一个变量的值。
这个声明可能包括初始化,但是这个 初始化必须是一个常量值 - 也就是说,它必须能够 在编译时进行评估,不得依赖于运行时 信息以便进行评估。
取自手册here。
这两项工作都是:
<?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
)
*/