我是PHP的新手,所以也许我忽略了以下内容:
class someClass {
var $id = $_GET['id'];
function sayHello() {
echo "Hello";
}
}
给出以下错误:
解析错误:语法错误,第13行的C:\ xampp \ htdocs \ files \ classes.php中的意外T_VARIABLE
如果不是$ _GET ['id']而是将变量$ id设置为字符串,那么一切都很好。
答案 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'];
}
}