File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
tests /
classes /
constants_basic_004.phpt
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 6 months ago) by
misho
Branches:
php,
MAIN
CVS tags:
v5_4_3elwix,
v5_4_29p0,
v5_4_29,
v5_4_20p0,
v5_4_20,
v5_4_17p0,
v5_4_17,
v5_3_10,
HEAD
php
1: --TEST--
2: Test properties with array default values using class constants as keys and values.
3: --FILE--
4: <?php
5: class X
6: {
7: // Static and instance array using class constants
8: public static $sa_x = array(B::KEY => B::VALUE);
9: public $a_x = array(B::KEY => B::VALUE);
10: }
11:
12: class B
13: {
14: const KEY = "key";
15: const VALUE = "value";
16:
17: // Static and instance array using class constants with self
18: public static $sa_b = array(self::KEY => self::VALUE);
19: public $a_b = array(self::KEY => self::VALUE);
20: }
21:
22: class C extends B
23: {
24: // Static and instance array using class constants with parent
25: public static $sa_c_parent = array(parent::KEY => parent::VALUE);
26: public $a_c_parent = array(parent::KEY => parent::VALUE);
27:
28: // Static and instance array using class constants with self (constants should be inherited)
29: public static $sa_c_self = array(self::KEY => self::VALUE);
30: public $a_c_self = array(self::KEY => self::VALUE);
31:
32: // Should also include inherited properties from B.
33: }
34:
35: echo "\nStatic properties:\n";
36: var_dump(X::$sa_x, B::$sa_b, C::$sa_b, C::$sa_c_parent, C::$sa_c_self);
37:
38: echo "\nInstance properties:\n";
39: $x = new x;
40: $b = new B;
41: $c = new C;
42: var_dump($x, $b, $c);
43: ?>
44: --EXPECTF--
45:
46: Static properties:
47: array(1) {
48: ["key"]=>
49: string(5) "value"
50: }
51: array(1) {
52: ["key"]=>
53: string(5) "value"
54: }
55: array(1) {
56: ["key"]=>
57: string(5) "value"
58: }
59: array(1) {
60: ["key"]=>
61: string(5) "value"
62: }
63: array(1) {
64: ["key"]=>
65: string(5) "value"
66: }
67:
68: Instance properties:
69: object(X)#%d (1) {
70: ["a_x"]=>
71: array(1) {
72: ["key"]=>
73: string(5) "value"
74: }
75: }
76: object(B)#%d (1) {
77: ["a_b"]=>
78: array(1) {
79: ["key"]=>
80: string(5) "value"
81: }
82: }
83: object(C)#%d (3) {
84: ["a_c_parent"]=>
85: array(1) {
86: ["key"]=>
87: string(5) "value"
88: }
89: ["a_c_self"]=>
90: array(1) {
91: ["key"]=>
92: string(5) "value"
93: }
94: ["a_b"]=>
95: array(1) {
96: ["key"]=>
97: string(5) "value"
98: }
99: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>