尝试设置类变量时,为什么会出现此错误

时间:2010-03-22 22:50:38

标签: php syntax-error

我是PHP的新手,所以也许我忽略了以下内容:

class someClass {

    var $id = $_GET['id'];

    function sayHello() {

        echo "Hello";

    }

}

给出以下错误:

解析错误:语法错误,第13行的C:\ xampp \ htdocs \ files \ classes.php中的意外T_VARIABLE

如果不是$ _GET ['id']而是将变量$ id设置为字符串,那么一切都很好。

2 个答案:

答案 0 :(得分:4)

在不使用构造函数的情况下,不能以这种方式将除常量之外的任何内容分配给类成员。

请参阅the manual

  

属性的声明[]可以包括初始化,但是这个初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖于运行 - 时间信息,以便进行评估。

执行此操作的替代方法是to use a constructor来设置值:

class someClass {

    var $id;

    public function __construct(){
        $this->id = $_GET['id'];
    }

    function sayHello() {
        echo "Hello";
    }
}

答案 1 :(得分:1)

您应该在构造函数中分配变量

class someClass {

    function __construct() {
        $this->id = $_GET['id'];
    }

}