Я пытаюсь инициировать класс по требованию.Инициировать класс по запросу
class MyClass{
private $modules = array("mod1" => false);
public function __get($name){
if(array_key_exists($name, $this->modules) && !$this->modules[$name]){
$class = ucfirst($name);
$this->$name = new $class();
$this->modules[$name] = true;
}
}
}
У меня тогда есть другой класс, который затем расширяет класс выше. Если я следующий класс не получает инициирован, и я получаю сообщение об ошибке Fatal error: Call to a member function get() on a non-object
class Home extends MyClass{
public function main(){
echo $this->mod1->get("cat");
}
}
Но если я сделаю это, класс действительно становится инициатором.
class Home extends MyClass{
public function main(){
$this->mod1;
echo $this->mod1->get("cat");
}
}
Есть ли способ для меня инициировать класс, не добавляя лишнюю строку?
ха-ха, ничего себе, я не могу поверить, что я никогда не думал об этом, спасибо за Помогите! –
@RyanNaddy Нет проблем! ;) –