Annotation of embedaddon/php/tests/classes/__set__get_001.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: ZE2 __set() and __get()
! 3: --SKIPIF--
! 4: <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
! 5: --FILE--
! 6: <?php
! 7: class setter {
! 8: public $n;
! 9: public $x = array('a' => 1, 'b' => 2, 'c' => 3);
! 10:
! 11: function __get($nm) {
! 12: echo "Getting [$nm]\n";
! 13:
! 14: if (isset($this->x[$nm])) {
! 15: $r = $this->x[$nm];
! 16: echo "Returning: $r\n";
! 17: return $r;
! 18: }
! 19: else {
! 20: echo "Nothing!\n";
! 21: }
! 22: }
! 23:
! 24: function __set($nm, $val) {
! 25: echo "Setting [$nm] to $val\n";
! 26:
! 27: if (isset($this->x[$nm])) {
! 28: $this->x[$nm] = $val;
! 29: echo "OK!\n";
! 30: }
! 31: else {
! 32: echo "Not OK!\n";
! 33: }
! 34: }
! 35: }
! 36:
! 37: $foo = new Setter();
! 38:
! 39: // this doesn't go through __set()... should it?
! 40: $foo->n = 1;
! 41:
! 42: // the rest are fine...
! 43: $foo->a = 100;
! 44: $foo->a++;
! 45: $foo->z++;
! 46: var_dump($foo);
! 47:
! 48: ?>
! 49: --EXPECTF--
! 50: Setting [a] to 100
! 51: OK!
! 52: Getting [a]
! 53: Returning: 100
! 54: Setting [a] to 101
! 55: OK!
! 56: Getting [z]
! 57: Nothing!
! 58: Setting [z] to 1
! 59: Not OK!
! 60: object(setter)#%d (2) {
! 61: ["n"]=>
! 62: int(1)
! 63: ["x"]=>
! 64: array(3) {
! 65: ["a"]=>
! 66: int(101)
! 67: ["b"]=>
! 68: int(2)
! 69: ["c"]=>
! 70: int(3)
! 71: }
! 72: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>