|
<?php class Setter{ public $n; private $x = array(); private function __get($nm) { if (isset($this->x[$nm])) { //9 18 $r = $this->x[$nm]; //10 print "Returning: $r\n"; //11 return $r; //12 } else { echo "Nothing!\n"; //19 } } //20
private function __set($nm, $val){ echo "Setting [$nm] to $val\n"; //4 13 21 if($this->x[$nm] = $val){ //5 14 22 echo "OK!\n"; //6 15 23 } else { echo "Not OK!\n"; } } //7 16 24 } $foo = new Setter(); //1 $foo->n = 1; //2 $foo->a = 100; //3 $foo->a++; //8 $foo->z++; //17 print_r($foo); //25 ?>
各输出步骤: 5: Setting [a] to 100 7: 8: Returning: 100 14: Setting [a] to 101 16: 20: 22: Setting [z] to 1 24: 26: Setter Object ( [n] => 1 [x:private] => Array ( [a] => 101 [z] => 1 )
)
|