Я создал класс в PHP, и я должен объявить переменную класса как объект. Каждый раз, когда я хочу объявить пустой объект, который я использую:
$var=new stdClass;
Но если я использую его для объявления переменной класса как
class foo { var $bar=new stdClass; }
возникает ошибка синтаксического анализа. Есть ли способ сделать это или я должен объявить переменную класса как объект в функции конструктора?
PS: Я использую PHP 4.
Вы можете объявлять статические значения только для членов класса, т. ints
, bools
, bools
, arrays
и т. Д. Вы не можете делать ничего, что связано с обработкой любого типа, например, вызовом функций или созданием объектов.
Вам нужно будет сделать это в конструкторе.
Соответствующий раздел руководства :
В PHP 4 допускаются только постоянные инициализаторы для переменных var. Чтобы инициализировать переменные с непостоянными значениями, вам нужна функция инициализации, которая вызывается автоматически, когда объект строится из класса. Такая функция называется конструктором (см. Ниже).
Классы и объекты (PHP 4) . Хороший читать каждый раз!
Вы не должны создавать свой объект здесь.
Вам лучше писать сеттер и getter
<?php class foo { var $bar = null; function foo($object = null) { $this->setBar($object); } function setBar($object = null) { if (null === $object) { $this->bar = new stdClass(); return $this; } $this->bar = $object; return $this; } }
Кстати, вы должны использовать PHP5 для работы с OOP, что более гибко …