在PHP中设置和获取时遇到问题
根据这里的答案: 下面的函数应该可以工作,但是它不产生输出在PHP中设置和获取时遇到问题,php,oop,get,set,Php,Oop,Get,Set,根据这里的答案: 下面的函数应该可以工作,但是它不产生输出 <?php class UserInfo{ private $username; private $privileges; public function __get($property) { if (property_exists($this, $property)) { return $this->$property; } } public function __set
<?php
class UserInfo{
private $username;
private $privileges;
public function __get($property) {
if (property_exists($this, $property)) {
return $this->$property;
}
}
public function __set($property, $value) {
if (property_exists($this, $property)) {
$this->$property = $value;
}
return $this;
}
}
$user=new UserInfo;
$user->__set($username,"someuser");
echo $user->__get($username);
?>
这里有什么地方我做错了吗?您当前的问题是,在将属性名称传递给函数时,必须使用
“username”
而不是未定义的$username
然而,这并不是神奇的接球手和二传手最初的工作方式。您应该使用$user->username=“someuser”进行设置代码>将自动触发设置程序:
$user=new UserInfo;
$user->username = "someuser";
echo $user->username;
直接的问题是,在将属性名传递给函数时,必须使用“username”
,而不是未定义的$username
然而,这并不是神奇的接球手和二传手最初的工作方式。您应该使用$user->username=“someuser”进行设置代码>将自动触发设置程序:
$user=new UserInfo;
$user->username = "someuser";
echo $user->username;
设置:
$user->username = "user";
要获得:
$username = $user->username;
设置:
$user->username = "user";
要获得:
$username = $user->username;
调用此行时:
$user->__set($username,"someuser");
作用域中没有$username,您正在将null参数传递到方法调用中
电话应该是
$user->__set('username', 'someuser');
调用此行时:
$user->__set($username,"someuser");
作用域中没有$username,您正在将null参数传递到方法调用中
电话应该是
$user->__set('username', 'someuser');
哇,谢谢。我读了手册,我发誓,我就是不知道这些方法是如何被调用的。这就是为什么他们叫他们魔术。哇,谢谢。我读了手册,我发誓,我就是不知道这些方法是如何被调用的。这就是为什么他们称之为魔法。