如何在没有__get
和__set
的情况下编写适用于以下示例的代码。其他所有内容都可以。
class A {
// What code to write here?
}
$a = new A();
$a->setName = function(A $a, $value)
{
$a->name = $value;
};
$a->getName = function(A $a)
{
return $a->name;
};
$a->setName('Vasya');
echo $a->getName1();
答案 0 :(得分:1)
朋友们,我解决了这个问题
class A {
public function __call($name, $arguments) {
try{
if(property_exists($this,$name) && is_callable($this->$name)){
$arguments = array_merge([__CLASS__=>$this],$arguments);
return call_user_func_array($this->$name, $arguments);
}
else{
throw new Exception($name.' is not a callable');
}
}
catch (Exception $e)
{
echo $e->getMessage();
exit;
}
}
}
$a = new A();
$a->setName = function(A $a, $value)
{
$a->name = $value;
};
$a->getName = function(A $a)
{
return $a->name;
};
$a->setName('John');
echo $a->getName();