这是我隔离的最小测试用例:
<?php
class What {
public $foo = range(0,5);
}
?>
我不知道为什么会产生错误:
PHP解析错误:语法错误,意外'(',期待','或';'在第4行的TestCase.php
使用array()
有效。
使用PHP 5.3.3(与OS X捆绑在一起)。
答案 0 :(得分:5)
您只能在该上下文中指定常量值。如果要使用函数的返回值,则必须在构造函数中初始化$foo
。
<?php
class What {
public $foo;
public function __construct() {
$this->foo = range(0,5);
}
}
?>
BTW:正如其他人所指出的那样,array()
不是一个功能。这是一种语言结构。
答案 1 :(得分:1)
数组不是函数,它是一种语言结构。这就是允许的原因。
答案 2 :(得分:0)
类成员变量被称为“属性”...可能包括初始化,但是这个初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖于运行时信息以便进行评估。
答案 3 :(得分:0)
检查此链接是否已发送类似问题并已解决: -
http://www.phpbuilder.com/board/showthread.php?t=10366062
你也可以在PHP.Net手册中看到使用range()函数的例子,虽然我认为问题可能在变量$ foo和public关键字中,因为你可能存在类型不匹配或冲突的版本PHP函数和正在运行的PHP版本。
我希望这个答案可以帮助你......