PHP类属性使用range()

时间:2010-12-07 06:03:13

标签: php oop

这是我隔离的最小测试用例:

<?php

class What {
    public $foo = range(0,5);
}

?>

我不知道为什么会产生错误:

  

PHP解析错误:语法错误,意外'(',期待','或';'在第4行的TestCase.php

使用array()有效。

使用PHP 5.3.3(与OS X捆绑在一起)。

4 个答案:

答案 0 :(得分:5)

您只能在该上下文中指定常量值。如果要使用函数的返回值,则必须在构造函数中初始化$foo

<?php

class What {
    public $foo;

    public function __construct() {
        $this->foo = range(0,5);
    }
}

?>
BTW:正如其他人所指出的那样,array()不是一个功能。这是一种语言结构。

答案 1 :(得分:1)

数组不是函数,它是一种语言结构。这就是允许的原因。

答案 2 :(得分:0)

  

类成员变量被称为“属性”...可能包括初始化,但是这个初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖于运行时信息以便进行评估。

http://www.php.net/manual/en/language.oop5.properties.php

答案 3 :(得分:0)

检查此链接是否已发送类似问题并已解决: -

http://www.phpbuilder.com/board/showthread.php?t=10366062

你也可以在PHP.Net手册中看到使用range()函数的例子,虽然我认为问题可能在变量$ foo和public关键字中,因为你可能存在类型不匹配或冲突的版本PHP函数和正在运行的PHP版本。

我希望这个答案可以帮助你......