php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /proc/self/root/php-7.1.11/tests/classes/ |
files >> //proc/self/root/php-7.1.11/tests/classes/__set__get_001.phpt |
--TEST-- ZE2 __set() and __get() --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class setter { public $n; public $x = array('a' => 1, 'b' => 2, 'c' => 3); function __get($nm) { echo "Getting [$nm]\n"; if (isset($this->x[$nm])) { $r = $this->x[$nm]; echo "Returning: $r\n"; return $r; } else { echo "Nothing!\n"; } } function __set($nm, $val) { echo "Setting [$nm] to $val\n"; if (isset($this->x[$nm])) { $this->x[$nm] = $val; echo "OK!\n"; } else { echo "Not OK!\n"; } } } $foo = new Setter(); // this doesn't go through __set()... should it? $foo->n = 1; // the rest are fine... $foo->a = 100; $foo->a++; $foo->z++; var_dump($foo); ?> --EXPECTF-- Setting [a] to 100 OK! Getting [a] Returning: 100 Setting [a] to 101 OK! Getting [z] Nothing! Setting [z] to 1 Not OK! object(setter)#%d (2) { ["n"]=> int(1) ["x"]=> array(3) { ["a"]=> int(101) ["b"]=> int(2) ["c"]=> int(3) } }y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`