Annotation of embedaddon/php/ext/standard/tests/array/array_key_exists_object2.phpt, revision 1.1.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>