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>