helly Fri Apr 8 09:34:31 2005 EDT Added files: /php-src/tests/classes property_exists.phpt Log: - Add new test
http://cvs.php.net/co.php/php-src/tests/classes/property_exists.phpt?r=1.1&p=1 Index: php-src/tests/classes/property_exists.phpt +++ php-src/tests/classes/property_exists.phpt --TEST-- ZE2 property_exists() --FILE-- <?php class A { public $a = 1; protected $b = 2; private $c = 3; function __toString() { return 'obj(' . get_class($this) . ')'; } static function test($oc, $props) { echo '===' . __CLASS__ . "===\n"; foreach($props as $p2) { echo $oc, '::$' , $p2, "\n"; var_dump(property_exists($oc, $p2)); } } } class B extends A { private $c = 4; static function test($oc, $props) { echo '===' . __CLASS__ . "===\n"; foreach($props as $p2) { echo $oc, '::$' , $p2, "\n"; var_dump(property_exists($oc, $p2)); } } } class C extends B { private $d = 5; static function test($oc, $props) { echo '===' . __CLASS__ . "===\n"; foreach($props as $p2) { echo $oc, '::$' , $p2, "\n"; var_dump(property_exists($oc, $p2)); } } } $oA = new A; $oA->e = 6; $oC = new C; $pc = array($oA, 'A', 'B', 'C', $oC); $pr = array('a', 'b', 'c', 'd', 'e'); foreach($pc as $p1) { if (is_object($p1)) { $p1->test($p1, $pr); } else { $r = new ReflectionMethod($p1, 'test'); $r->invoke(NULL, $p1, $pr); } echo "===GLOBAL===\n"; foreach($pr as $p2) { echo $p1, '::$' , $p2, "\n"; var_dump(property_exists($p1, $p2)); } } ?> ===DONE=== <?php exit(0); ?> --EXPECT-- ===A=== obj(A)::$a bool(true) obj(A)::$b bool(true) obj(A)::$c bool(true) obj(A)::$d bool(false) obj(A)::$e bool(true) ===GLOBAL=== obj(A)::$a bool(true) obj(A)::$b bool(false) obj(A)::$c bool(false) obj(A)::$d bool(false) obj(A)::$e bool(true) ===A=== A::$a bool(true) A::$b bool(true) A::$c bool(true) A::$d bool(false) A::$e bool(false) ===GLOBAL=== A::$a bool(true) A::$b bool(false) A::$c bool(false) A::$d bool(false) A::$e bool(false) ===B=== B::$a bool(true) B::$b bool(true) B::$c bool(true) B::$d bool(false) B::$e bool(false) ===GLOBAL=== B::$a bool(true) B::$b bool(false) B::$c bool(false) B::$d bool(false) B::$e bool(false) ===C=== C::$a bool(true) C::$b bool(true) C::$c bool(false) C::$d bool(true) C::$e bool(false) ===GLOBAL=== C::$a bool(true) C::$b bool(false) C::$c bool(false) C::$d bool(false) C::$e bool(false) ===C=== obj(C)::$a bool(true) obj(C)::$b bool(true) obj(C)::$c bool(false) obj(C)::$d bool(true) obj(C)::$e bool(false) ===GLOBAL=== obj(C)::$a bool(true) obj(C)::$b bool(false) obj(C)::$c bool(false) obj(C)::$d bool(false) obj(C)::$e bool(false) ===DONE=== -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php