Я понимаю, что __isset () для несуществующего свойства. Но я хочу, чтобы это существующее свойство было нулевым.
По умолчанию это может быть хорошо:
class myClass
{
public function __isset($name)
{
// create an object;
}
}
$a = new myClass();
$a->mails->get();
$a->users->login();
но письма, объекты пользователя нигде не указаны. Так что это может быть решением, но в результате получается искаженный класс, он плохо отражается на диаграмме UML и т. Д. Реальное решение может быть:
class myClass
{
public $users = null;
public $mails = null;
public function __isset($name)
{
// create an object BUT IT WONT TRIGGER!
}
}
$a = new myClass();
$a->mails->get(); // <- fail!
$a->users->login();
только потому, что пользователи, письма объявляются. Но тогда это теперь отражает хорошую структуру! Синглтон уже может быть хорошим, но я не хочу этого. Есть ли способ вызвать что-то, когда что-то, к чему обращались, является нулевым?