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

Reply via email to