将变量设置为json_encode()在PHP中输出的内容

时间:2011-04-12 06:33:56

标签: php json

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

2 个答案:

答案 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");
    }
}