내가 젠드 PHP 학습 가이드에서이 질문을 가지고 적절한 설명을 찾을 수는 ...PHP 마법 방법 예
<?php
class Magic {
public $a = "A";
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.",";
$m->c = "CC";
echo $m->a.",".$m->b.",".$m->c;
?>
가이드에 따르면, 해결책은 "b,c,A,B,C,c: CC,b,c,A,B,C
"한다. 나는 이유를 알아낼 수 없다. 어쩌면 그렇게 할 수 있을까? __get()
전화 echo
는 일부 데이터는 클래스의 echo
외부 전에 출력되는
제공 한 코드는 "b, c, A, B, Cmc : CC, b, c, A, B, C"를 출력합니다 ([this proof] (http://codepad.org/) 참조) ez1rSs63)). 가이드의 오타 또는 정확한 내용입니까? – Tadeck
당신이 맞습니다 - 작은 오타. 그것은 지금 정확합니다. http://codepad.org/H91fpj8q –