我需要以下方面的帮助:
我理解代码,但不理解最后一行的输出。
为什么输出是b,A,B
而不是A,b,B
?
class magic{
public $a = "A";
protected $b = array("a" => "A", "b" => "B","c" => "C");
protected $c = array(1,2,3);
public function __get($name){
echo "$name,";
return $this -> b[$name];
}
}
$m = new magic();
echo $m->a;
// A
// because $a is public
echo $m->b;
// b,B
// because $b is protected
echo $m->a.",".$m->b;
// b,A,B
发布于 2018-05-20 18:50:01
问题是,您在__get()
方法中回显名称,这将立即输出值,但返回变量的值以供稍后显示。
如果你把常规改为..。
public function __get($name){
//echo "$name,";
return "$name,".$this -> b[$name];
}
您的输出变成- A,b,B
https://stackoverflow.com/questions/50438215
复制相似问题