Почему я получаю эту ошибку при попытке установить переменную класса - PullRequest
0 голосов
/ 23 марта 2010

Я новичок в PHP, поэтому, может быть, я что-то пропускаю, но следующее:

class someClass {

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

    function sayHello() {

        echo "Hello";

    }

}

выдает следующую ошибку:

Ошибка разбора: синтаксическая ошибка, неожиданный T_VARIABLE в C: \ xampp \ htdocs \ files \ classes.php в строке 13

Если вместо $ _GET ['id'] я установлю переменную $ id в строку, то все будет хорошо.

Ответы [ 2 ]

4 голосов
/ 23 марта 2010

Таким образом, вы не можете назначить что-либо кроме констант члену класса без использования конструктора.

См. руководство :

объявление [свойства] может включать в себя инициализацию, , но эта инициализация должна иметь постоянное значение - то есть она должна быть в состоянии быть оцененной во время компиляции и не должна зависеть от выполнения информация о времени для оценки.

Альтернативный способ сделать это - использовать конструктор для установки значения:

class someClass {

    var $id;

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

    function sayHello() {
        echo "Hello";
    }
}
1 голос
/ 23 марта 2010

Вы должны назначить вашу переменную в конструкторе

class someClass {

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

}
...