Annotation of embedaddon/php/ext/standard/tests/class_object/get_object_vars_basic_001.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: get_object_vars(): visibility from static methods (target object passed as arg)
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : proto array get_object_vars(object obj)
! 6: * Description: Returns an array of object properties
! 7: * Source code: Zend/zend_builtin_functions.c
! 8: * Alias to functions:
! 9: */
! 10:
! 11: Class A {
! 12: private $hiddenPriv = 'A::hiddenPriv';
! 13:
! 14: public static function test($b) {
! 15: echo __METHOD__ . "\n";
! 16: var_dump(get_object_vars($b));
! 17: }
! 18: }
! 19:
! 20: Class B extends A {
! 21: private $hiddenPriv = 'B::hiddenPriv';
! 22: private $priv = 'B::priv';
! 23: protected $prot = 'B::prot';
! 24: public $pub = 'B::pub';
! 25:
! 26: public static function test($b) {
! 27: echo __METHOD__ . "\n";
! 28: var_dump(get_object_vars($b));
! 29: }
! 30: }
! 31:
! 32: Class C extends B {
! 33: private $hiddenPriv = 'C::hiddenPriv';
! 34:
! 35: public static function test($b) {
! 36: echo __METHOD__ . "\n";
! 37: var_dump(get_object_vars($b));
! 38: }
! 39: }
! 40:
! 41: Class X {
! 42: public static function test($b) {
! 43: echo __METHOD__ . "\n";
! 44: var_dump(get_object_vars($b));
! 45: }
! 46: }
! 47:
! 48:
! 49: $b = new B;
! 50: echo "\n---( Global scope: )---\n";
! 51: var_dump(get_object_vars($b));
! 52: echo "\n---( Declaring class: )---\n";
! 53: B::test($b);
! 54: echo "\n---( Subclass: )---\n";
! 55: C::test($b);
! 56: echo "\n---( Superclass: )---\n";
! 57: A::test($b);
! 58: echo "\n---( Unrelated class: )---\n";
! 59: X::test($b);
! 60: ?>
! 61: --EXPECTF--
! 62:
! 63: ---( Global scope: )---
! 64: array(1) {
! 65: ["pub"]=>
! 66: string(6) "B::pub"
! 67: }
! 68:
! 69: ---( Declaring class: )---
! 70: B::test
! 71: array(4) {
! 72: ["hiddenPriv"]=>
! 73: string(13) "B::hiddenPriv"
! 74: ["priv"]=>
! 75: string(7) "B::priv"
! 76: ["prot"]=>
! 77: string(7) "B::prot"
! 78: ["pub"]=>
! 79: string(6) "B::pub"
! 80: }
! 81:
! 82: ---( Subclass: )---
! 83: C::test
! 84: array(2) {
! 85: ["prot"]=>
! 86: string(7) "B::prot"
! 87: ["pub"]=>
! 88: string(6) "B::pub"
! 89: }
! 90:
! 91: ---( Superclass: )---
! 92: A::test
! 93: array(3) {
! 94: ["prot"]=>
! 95: string(7) "B::prot"
! 96: ["pub"]=>
! 97: string(6) "B::pub"
! 98: ["hiddenPriv"]=>
! 99: string(13) "A::hiddenPriv"
! 100: }
! 101:
! 102: ---( Unrelated class: )---
! 103: X::test
! 104: array(1) {
! 105: ["pub"]=>
! 106: string(6) "B::pub"
! 107: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>