为什么不能在这里分配带range()
的变量?
class foo
{
//
// Error
public static $bar = range(1, 10);
//
// Error
public $bar = range(1, 10);
//
// Works
public static $zoo = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
}
答案 0 :(得分:4)
您无法使用函数调用的结果初始化类属性。
array()
是一种语言结构,而不是一种功能,所以它确实有效。
答案 1 :(得分:2)
您无法设置初始class properties using functions or variables,就像您无法设置default function argument values with functions一样。
答案 2 :(得分:0)
你可以在构造函数中初始化它:
class foo
{
// Works
public $bar;
function __construct() {
$bar = range(1, 10);
}
}