У меня есть класс, который выглядит следующим образом:Почему __get вызывается вместо __call, когда я вызываю несуществующий метод?
class MyClass
{
public __get($prop)
{
$method = 'get' . ucfirst($prop);
if (method_exists($this, $metodo))
return $this->$metodo();
if (property_exists($this, $prop))
return $this->$prop;
throw new Exception("Nonexisting property $prop");
}
public function __call($method, $args)
{
$prop = strtr($method, 'add', '');
$prop = lcfirst($prop);
if (is_array($this->$prop))
array_push($this->$prop, $args[0]);
}
}
Но если я $obj->addTags('test');
он называет __get, ведьма дает мне исключение с сообщением: «несуществующие addTags недвижимости»
Что я должен сделать, чтобы мой __call был вызван вместо моего __get?
Заранее благодарен!