我有一个看起来像这样的课程:
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?
提前致谢!
答案 0 :(得分:0)
我刚用str_replace替换了strtr。 我没有获得正确的属性名称,所以现在它可以工作。
我会在Stack Overflow允许的情况下尽快将其标记为已回答。
: - D