json_encode()返回一个字符串......
以下代码不应该有效吗?
class TestClass {
private $test = json_encode("test");
}
PHP输出
Parse error: syntax error, unexpected '(', expecting ',' or ';' in /home/testuser/public_html/test.php on line 10
答案 0 :(得分:4)
在声明class属性时,不能指定表达式或任何变量。这里允许使用__FILE__
这样的文字常量。
它们必须是文字值,例如字符串或常量。
一切都有效。
private $test= 98;
private $test= "test value";
private $test= CONSTANT;
private $test= __FILE__;
但这些不会
private $test= 98*2;
private $test= "test value"."some other value";
您可以使用构造函数
function __construct() {
$this->test = json_encode("test");
}
答案 1 :(得分:2)
在PHP中,您无法将实例变量分配给声明中函数的结果。您应该在构造函数中分配它。例如
class TestClass {
private $test;
public function __construct() {
$this->test = json_encode("test");
}
}