Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_getProperty_003.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: ReflectionClass::getProperty()
                      3: --CREDITS--
                      4: Robin Fernandes <robinf@php.net>
                      5: Steve Seear <stevseea@php.net>
                      6: --FILE--
                      7: <?php
                      8: class A {
                      9:        static public $pubC = "pubC in A";
                     10:        static protected $protC = "protC in A";
                     11:        static private $privC = "privC in A";
                     12:        
                     13:        static public $pubA = "pubA in A";
                     14:        static protected $protA = "protA in A";
                     15:        static private $privA = "privA in A";           
                     16: }
                     17: 
                     18: class B extends A {
                     19:        static public $pubC = "pubC in B";
                     20:        static protected $protC = "protC in B";
                     21:        static private $privC = "privC in B";
                     22: 
                     23:        static public $pubB = "pubB in B";
                     24:        static protected $protB = "protB in B";
                     25:        static private $privB = "privB in B";   
                     26: }
                     27: 
                     28: class C extends B {
                     29:        static public $pubC = "pubC in C";
                     30:        static protected $protC = "protC in C";
                     31:        static private $privC = "privC in C";
                     32: }
                     33: 
                     34: class X {
                     35:        static public $pubC = "pubC in X";
                     36:        static protected $protC = "protC in X";
                     37:        static private $privC = "privC in X";   
                     38: }
                     39: 
                     40: $myC = new C;
                     41: $rc = new ReflectionClass("C");
                     42: 
                     43: function showInfo($name) {
                     44:        global $rc, $myC;
                     45:        echo "--- (Reflecting on $name) ---\n";
                     46:        try {
                     47:                $rp = $rc->getProperty($name);
                     48:        } catch (Exception $e) {
                     49:                echo $e->getMessage() . "\n";
                     50:                return;
                     51:        }
                     52:        try {
                     53:                var_dump($rp);
                     54:                var_dump($rp->getValue($myC));
                     55:        } catch (Exception $e) {                
                     56:                echo $e->getMessage() . "\n";
                     57:                return;
                     58:        }               
                     59: }
                     60: 
                     61: 
                     62: showInfo("pubA");
                     63: showInfo("protA");
                     64: showInfo("privA");
                     65: 
                     66: showInfo("pubB");
                     67: showInfo("protB");
                     68: showInfo("privB");
                     69: 
                     70: showInfo("pubC");
                     71: showInfo("protC");
                     72: showInfo("privC");
                     73: showInfo("doesntExist");
                     74: 
                     75: showInfo("A::pubC");
                     76: showInfo("A::protC");
                     77: showInfo("A::privC");
                     78: 
                     79: showInfo("B::pubC");
                     80: showInfo("B::protC");
                     81: showInfo("B::privC");
                     82: 
                     83: showInfo("c::pubC");
                     84: showInfo("c::PUBC");
                     85: showInfo("C::pubC");
                     86: showInfo("C::protC");
                     87: showInfo("C::privC");
                     88: 
                     89: showInfo("X::pubC");
                     90: showInfo("X::protC");
                     91: showInfo("X::privC");
                     92: showInfo("X::doesntExist");
                     93: 
                     94: showInfo("doesntexist::doesntExist");
                     95: 
                     96: ?>
                     97: --EXPECTF--
                     98: --- (Reflecting on pubA) ---
                     99: object(ReflectionProperty)#%d (2) {
                    100:   [%u|b%"name"]=>
                    101:   %unicode|string%(4) "pubA"
                    102:   [%u|b%"class"]=>
                    103:   %unicode|string%(1) "A"
                    104: }
                    105: %unicode|string%(9) "pubA in A"
                    106: --- (Reflecting on protA) ---
                    107: object(ReflectionProperty)#%d (2) {
                    108:   [%u|b%"name"]=>
                    109:   %unicode|string%(5) "protA"
                    110:   [%u|b%"class"]=>
                    111:   %unicode|string%(1) "A"
                    112: }
                    113: Cannot access non-public member C::protA
                    114: --- (Reflecting on privA) ---
                    115: Property privA does not exist
                    116: --- (Reflecting on pubB) ---
                    117: object(ReflectionProperty)#%d (2) {
                    118:   [%u|b%"name"]=>
                    119:   %unicode|string%(4) "pubB"
                    120:   [%u|b%"class"]=>
                    121:   %unicode|string%(1) "B"
                    122: }
                    123: %unicode|string%(9) "pubB in B"
                    124: --- (Reflecting on protB) ---
                    125: object(ReflectionProperty)#%d (2) {
                    126:   [%u|b%"name"]=>
                    127:   %unicode|string%(5) "protB"
                    128:   [%u|b%"class"]=>
                    129:   %unicode|string%(1) "B"
                    130: }
                    131: Cannot access non-public member C::protB
                    132: --- (Reflecting on privB) ---
                    133: Property privB does not exist
                    134: --- (Reflecting on pubC) ---
                    135: object(ReflectionProperty)#%d (2) {
                    136:   [%u|b%"name"]=>
                    137:   %unicode|string%(4) "pubC"
                    138:   [%u|b%"class"]=>
                    139:   %unicode|string%(1) "C"
                    140: }
                    141: %unicode|string%(9) "pubC in C"
                    142: --- (Reflecting on protC) ---
                    143: object(ReflectionProperty)#%d (2) {
                    144:   [%u|b%"name"]=>
                    145:   %unicode|string%(5) "protC"
                    146:   [%u|b%"class"]=>
                    147:   %unicode|string%(1) "C"
                    148: }
                    149: Cannot access non-public member C::protC
                    150: --- (Reflecting on privC) ---
                    151: object(ReflectionProperty)#%d (2) {
                    152:   [%u|b%"name"]=>
                    153:   %unicode|string%(5) "privC"
                    154:   [%u|b%"class"]=>
                    155:   %unicode|string%(1) "C"
                    156: }
                    157: Cannot access non-public member C::privC
                    158: --- (Reflecting on doesntExist) ---
                    159: Property doesntExist does not exist
                    160: --- (Reflecting on A::pubC) ---
                    161: object(ReflectionProperty)#%d (2) {
                    162:   [%u|b%"name"]=>
                    163:   %unicode|string%(4) "pubC"
                    164:   [%u|b%"class"]=>
                    165:   %unicode|string%(1) "A"
                    166: }
                    167: %unicode|string%(9) "pubC in A"
                    168: --- (Reflecting on A::protC) ---
                    169: object(ReflectionProperty)#%d (2) {
                    170:   [%u|b%"name"]=>
                    171:   %unicode|string%(5) "protC"
                    172:   [%u|b%"class"]=>
                    173:   %unicode|string%(1) "A"
                    174: }
                    175: Cannot access non-public member A::protC
                    176: --- (Reflecting on A::privC) ---
                    177: object(ReflectionProperty)#%d (2) {
                    178:   [%u|b%"name"]=>
                    179:   %unicode|string%(5) "privC"
                    180:   [%u|b%"class"]=>
                    181:   %unicode|string%(1) "A"
                    182: }
                    183: Cannot access non-public member A::privC
                    184: --- (Reflecting on B::pubC) ---
                    185: object(ReflectionProperty)#%d (2) {
                    186:   [%u|b%"name"]=>
                    187:   %unicode|string%(4) "pubC"
                    188:   [%u|b%"class"]=>
                    189:   %unicode|string%(1) "B"
                    190: }
                    191: %unicode|string%(9) "pubC in B"
                    192: --- (Reflecting on B::protC) ---
                    193: object(ReflectionProperty)#%d (2) {
                    194:   [%u|b%"name"]=>
                    195:   %unicode|string%(5) "protC"
                    196:   [%u|b%"class"]=>
                    197:   %unicode|string%(1) "B"
                    198: }
                    199: Cannot access non-public member B::protC
                    200: --- (Reflecting on B::privC) ---
                    201: object(ReflectionProperty)#%d (2) {
                    202:   [%u|b%"name"]=>
                    203:   %unicode|string%(5) "privC"
                    204:   [%u|b%"class"]=>
                    205:   %unicode|string%(1) "B"
                    206: }
                    207: Cannot access non-public member B::privC
                    208: --- (Reflecting on c::pubC) ---
                    209: object(ReflectionProperty)#%d (2) {
                    210:   [%u|b%"name"]=>
                    211:   %unicode|string%(4) "pubC"
                    212:   [%u|b%"class"]=>
                    213:   %unicode|string%(1) "C"
                    214: }
                    215: %unicode|string%(9) "pubC in C"
                    216: --- (Reflecting on c::PUBC) ---
                    217: Property PUBC does not exist
                    218: --- (Reflecting on C::pubC) ---
                    219: object(ReflectionProperty)#%d (2) {
                    220:   [%u|b%"name"]=>
                    221:   %unicode|string%(4) "pubC"
                    222:   [%u|b%"class"]=>
                    223:   %unicode|string%(1) "C"
                    224: }
                    225: %unicode|string%(9) "pubC in C"
                    226: --- (Reflecting on C::protC) ---
                    227: object(ReflectionProperty)#%d (2) {
                    228:   [%u|b%"name"]=>
                    229:   %unicode|string%(5) "protC"
                    230:   [%u|b%"class"]=>
                    231:   %unicode|string%(1) "C"
                    232: }
                    233: Cannot access non-public member C::protC
                    234: --- (Reflecting on C::privC) ---
                    235: object(ReflectionProperty)#%d (2) {
                    236:   [%u|b%"name"]=>
                    237:   %unicode|string%(5) "privC"
                    238:   [%u|b%"class"]=>
                    239:   %unicode|string%(1) "C"
                    240: }
                    241: Cannot access non-public member C::privC
                    242: --- (Reflecting on X::pubC) ---
                    243: Fully qualified property name X::pubC does not specify a base class of C
                    244: --- (Reflecting on X::protC) ---
                    245: Fully qualified property name X::protC does not specify a base class of C
                    246: --- (Reflecting on X::privC) ---
                    247: Fully qualified property name X::privC does not specify a base class of C
                    248: --- (Reflecting on X::doesntExist) ---
                    249: Fully qualified property name X::doesntExist does not specify a base class of C
                    250: --- (Reflecting on doesntexist::doesntExist) ---
                    251: Class doesntexist does not exist

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>