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>