1--TEST-- 2ReflectionClass::getDefaultProperties(), ReflectionClass::getStaticProperties() 3--CREDITS-- 4Robin Fernandes <robinf@php.net> 5Steve Seear <stevseea@php.net> 6--FILE-- 7<?php 8 9 10class A { 11 static public $statPubC = "stat pubC in A"; 12 static protected $statProtC = "stat protC in A"; 13 static private $statPrivC = "stat privC in A"; 14 15 static public $statPubA = "stat pubA in A"; 16 static protected $statProtA = "stat protA in A"; 17 static private $statPrivA = "stat privA in A"; 18 19 public $pubC = "pubC in A"; 20 protected $protC = "protC in A"; 21 private $privC = "privC in A"; 22 23 public $pubA = "pubA in A"; 24 protected $protA = "protA in A"; 25 private $privA = "privA in A"; 26} 27 28class B extends A { 29 static public $statPubC = "stat pubC in B"; 30 static protected $statProtC = "stat protC in B"; 31 static private $statPrivC = "stat privC in B"; 32 33 static public $statPubB = "stat pubB in B"; 34 static protected $statProtB = "stat protB in B"; 35 static private $statPrivB = "stat privB in B"; 36 37 public $pubC = "pubC in B"; 38 protected $protC = "protC in B"; 39 private $privC = "privC in B"; 40 41 public $pubB = "pubB in B"; 42 protected $protB = "protB in B"; 43 private $privB = "privB in B"; 44} 45 46class C extends B { 47 static public $statPubC = "stat pubC in C"; 48 static protected $statProtC = "stat protC in C"; 49 static private $statPrivC = "stat privC in C"; 50 51 public $pubC = "pubC in C"; 52 protected $protC = "protC in C"; 53 private $privC = "privC in C"; 54} 55 56class X { 57 static public $statPubC = "stat pubC in X"; 58 static protected $statProtC = "stat protC in X"; 59 static private $statPrivC = "stat privC in X"; 60 61 public $pubC = "pubC in X"; 62 protected $protC = "protC in X"; 63 private $privC = "privC in X"; 64} 65 66$classes = array('A', 'B', 'C', 'X'); 67foreach ($classes as $class) { 68 $rc = new ReflectionClass($class); 69 echo "\n\n---- Static properties in $class ----\n"; 70 print_r($rc->getStaticProperties()); 71 echo "\n\n---- Default properties in $class ----\n"; 72 print_r($rc->getDefaultProperties()); 73} 74 75?> 76--EXPECTF-- 77---- Static properties in A ---- 78Array 79( 80 [statPubC] => stat pubC in A 81 [statProtC] => stat protC in A 82 [statPrivC] => stat privC in A 83 [statPubA] => stat pubA in A 84 [statProtA] => stat protA in A 85 [statPrivA] => stat privA in A 86) 87 88 89---- Default properties in A ---- 90Array 91( 92 [statPubC] => stat pubC in A 93 [statProtC] => stat protC in A 94 [statPrivC] => stat privC in A 95 [statPubA] => stat pubA in A 96 [statProtA] => stat protA in A 97 [statPrivA] => stat privA in A 98 [pubC] => pubC in A 99 [protC] => protC in A 100 [privC] => privC in A 101 [pubA] => pubA in A 102 [protA] => protA in A 103 [privA] => privA in A 104) 105 106 107---- Static properties in B ---- 108Array 109( 110 [statPubC] => stat pubC in B 111 [statProtC] => stat protC in B 112 [statPrivC] => stat privC in B 113 [statPubB] => stat pubB in B 114 [statProtB] => stat protB in B 115 [statPrivB] => stat privB in B 116 [statPubA] => stat pubA in A 117 [statProtA] => stat protA in A 118) 119 120 121---- Default properties in B ---- 122Array 123( 124 [statPubC] => stat pubC in B 125 [statProtC] => stat protC in B 126 [statPrivC] => stat privC in B 127 [statPubB] => stat pubB in B 128 [statProtB] => stat protB in B 129 [statPrivB] => stat privB in B 130 [statPubA] => stat pubA in A 131 [statProtA] => stat protA in A 132 [pubC] => pubC in B 133 [protC] => protC in B 134 [privC] => privC in B 135 [pubB] => pubB in B 136 [protB] => protB in B 137 [privB] => privB in B 138 [pubA] => pubA in A 139 [protA] => protA in A 140) 141 142 143---- Static properties in C ---- 144Array 145( 146 [statPubC] => stat pubC in C 147 [statProtC] => stat protC in C 148 [statPrivC] => stat privC in C 149 [statPubB] => stat pubB in B 150 [statProtB] => stat protB in B 151 [statPubA] => stat pubA in A 152 [statProtA] => stat protA in A 153) 154 155 156---- Default properties in C ---- 157Array 158( 159 [statPubC] => stat pubC in C 160 [statProtC] => stat protC in C 161 [statPrivC] => stat privC in C 162 [statPubB] => stat pubB in B 163 [statProtB] => stat protB in B 164 [statPubA] => stat pubA in A 165 [statProtA] => stat protA in A 166 [pubC] => pubC in C 167 [protC] => protC in C 168 [privC] => privC in C 169 [pubB] => pubB in B 170 [protB] => protB in B 171 [pubA] => pubA in A 172 [protA] => protA in A 173) 174 175 176---- Static properties in X ---- 177Array 178( 179 [statPubC] => stat pubC in X 180 [statProtC] => stat protC in X 181 [statPrivC] => stat privC in X 182) 183 184 185---- Default properties in X ---- 186Array 187( 188 [statPubC] => stat pubC in X 189 [statProtC] => stat protC in X 190 [statPrivC] => stat privC in X 191 [pubC] => pubC in X 192 [protC] => protC in X 193 [privC] => privC in X 194) 195