如果我这样使用它(在课堂之外):
$user_agent = $user->user_agent;
在构造函数中调用方法 get_user_agent()。
这里魔术 __get 调用方法 get_user_agent 而不是返回成员变量 user_agent 的值。
如何避免这种情况?
class user
{
private $user_agent;
public function __get($key)
{
$value = null;
if(method_exists($this, "get_$key"))
{
$value = $this->{"get_$key"}();
}
else
{
$value = $this->$key;
}
return $value;
}
public function get_user_agent()
{
$this->user_agent = $_SERVER['HTTP_USER_AGENT'];
}