Я понимаю, что PHP не позволяет мне создать новый экземпляр класса ClassB внутри моего класса, если создание не входит в область функции. Или я просто не понимаю …
class ClassA { const ASD = 0; protected $_asd = array(); //and so on protected $_myVar = new ClassB(); // here I get *syntax error, unexpected 'new'* underlining 'new' // functions and so on }
Мне нужен какой-то конструктор, или есть способ фактически создать экземпляр объекта по-своему, как я желаю, поскольку я привык делать на Java или C #. Или использует Singleton единственное самое близкое решение для моего подхода?
PS ClassB находится в том же пакете и папке, что и ClassA.
Согласно документам PHP :
объявление может включать инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть способна быть оценена во время компиляции и не должна зависеть от информации о времени выполнения для оценки.
Таким образом, вам нужно будет создать экземпляр $_myVar
в вашем конструкторе :
protected $_myVar; public function __contruct() { $this->_myVar = new ClassB(); }
Да, есть конструктор (см. Ниже)
class ClassA { const ASD = 0; protected $_asd = array(); //and so on protected $_myVar; // initialization not allowed directly here public function __contruct() { $this->_myVar = new ClassB(); } }