1
因此,我認爲(現在)認爲我誤解了PHP中的magic __get和__set。精細。php輸出值與調試器值不匹配
但是這個例子的輸出不僅是意外的,它也不匹配調試器所說的將要輸出的內容。
<?php
// put your code here
class Magic {
public $a = 'A';
public $x = 'X';
protected $b = array("a"=>"A", "b"=>"B", "c"=>"C");
protected $c = array(1,2,3);
public function __get($v) {
echo "$v,";
return $this->b[$v];
}
public function set($var, $val) {
echo "$var: $val";
$this->$var = $val;
}
}
$m = new Magic();
echo $m->a.",".$m->b.",".$m->c.",";
echo $m->x;
?>
的這個輸出是:
B,C,A,B,C,X現在
,我設置了XAMPP和NetBeans只是爲了調試這個......當我把在
echo $m->a.",".$m->b.",".$m->c.",";
一個斷點,並懸停在M- $>一,我看到
(String)將
但是,這不是輸出?獲得輸出的第一個字符是
b
發生了什麼事?調試器說,$ M-> A的值,但是當我們呼應它,它,輸出b
可能是這樣一個問題;) 而你的答案當然是有意義的(面/手掌) – GHolmes