Установите переменную, которую json_encode () выводит в PHP - PullRequest
1 голос
/ 12 апреля 2011

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 ]

4 голосов
/ 12 апреля 2011

Вы не можете назначить выражение или любую переменную при объявлении свойства класса. Здесь разрешены буквальные константы, такие как __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");
    }
2 голосов
/ 12 апреля 2011

В PHP вы не можете присвоить переменную экземпляра результату функции в объявлении. Вы должны назначить его в конструкторе. Например.

class TestClass {
    private $test;
    public function __construct() {
        $this->test = json_encode("test");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...