Annotation of embedaddon/php/ext/standard/tests/array/array_key_exists_object2.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test array_key_exists() function : object functionality - different visibilities
        !             3: --FILE--
        !             4: <?php
        !             5: /* Prototype  : bool array_key_exists(mixed $key, array $search)
        !             6:  * Description: Checks if the given key or index exists in the array 
        !             7:  * Source code: ext/standard/array.c
        !             8:  * Alias to functions: key_exists
        !             9:  */
        !            10: 
        !            11: /*
        !            12:  * Pass array_key_exists() an object with private and protected properties
        !            13:  */
        !            14: 
        !            15: echo "*** Testing array_key_exists() : object functionality ***\n";
        !            16: 
        !            17: class myClass {
        !            18:        public $var1;
        !            19:        protected $var2;
        !            20:        private $var3;
        !            21:        
        !            22:        function __construct($a, $b, $c = null) {
        !            23:                $this->var1 = $a;
        !            24:                $this->var2 = $b;
        !            25:                if (!is_null($c)) {
        !            26:                        $this->var3 = $c;
        !            27:                }
        !            28:        }
        !            29: }
        !            30: 
        !            31: echo "\n-- Do not assign a value to \$class1->var3 --\n";
        !            32: $class1 = new myClass ('a', 'b');
        !            33: echo "\$key = var1:\n";
        !            34: var_dump(array_key_exists('var1', $class1));
        !            35: echo "\$key = var2:\n";
        !            36: var_dump(array_key_exists('var2', $class1));
        !            37: echo "\$key = var3:\n";
        !            38: var_dump(array_key_exists('var3', $class1));
        !            39: echo "\$class1:\n";
        !            40: var_dump($class1);
        !            41: 
        !            42: echo "\n-- Assign a value to \$class2->var3 --\n";
        !            43: $class2 = new myClass('x', 'y', 'z');
        !            44: echo "\$key = var3:\n";
        !            45: var_dump(array_key_exists('var3', $class2));
        !            46: echo "\$class2:\n";
        !            47: var_dump($class2);
        !            48: 
        !            49: echo "Done";
        !            50: ?>
        !            51: 
        !            52: --EXPECTF--
        !            53: *** Testing array_key_exists() : object functionality ***
        !            54: 
        !            55: -- Do not assign a value to $class1->var3 --
        !            56: $key = var1:
        !            57: bool(true)
        !            58: $key = var2:
        !            59: bool(false)
        !            60: $key = var3:
        !            61: bool(false)
        !            62: $class1:
        !            63: object(myClass)#1 (3) {
        !            64:   [%b|u%"var1"]=>
        !            65:   %unicode|string%(1) "a"
        !            66:   [%b|u%"var2":protected]=>
        !            67:   %unicode|string%(1) "b"
        !            68:   [%b|u%"var3":%b|u%"myClass":private]=>
        !            69:   NULL
        !            70: }
        !            71: 
        !            72: -- Assign a value to $class2->var3 --
        !            73: $key = var3:
        !            74: bool(false)
        !            75: $class2:
        !            76: object(myClass)#2 (3) {
        !            77:   [%b|u%"var1"]=>
        !            78:   %unicode|string%(1) "x"
        !            79:   [%b|u%"var2":protected]=>
        !            80:   %unicode|string%(1) "y"
        !            81:   [%b|u%"var3":%b|u%"myClass":private]=>
        !            82:   %unicode|string%(1) "z"
        !            83: }
        !            84: Done

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