File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
Zend /
tests /
fr47160.phpt
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue May 29 12:34:36 2012 UTC (12 years, 10 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,
HEAD
php 5.4.3+patches
1: --TEST--
2: Calling method from array
3: --FILE--
4: <?php
5:
6: class Hello {
7: public function world($x) {
8: echo "Hello, $x\n"; return $this;
9: }
10: }
11:
12: class Hello2 {
13: static public function world($x) {
14: echo "Hello, $x\n";
15: }
16: }
17:
18: class Magic {
19: public function __call($f, $a) {
20: printf("%s called (%s)!\n", __METHOD__, $f);
21: }
22: }
23:
24: class Magic2 {
25: public static function __callStatic($f, $a) {
26: printf("%s called (%s)!\n", __METHOD__, $f);
27: }
28: }
29:
30: class Magic3 {
31: public static function __callStatic($f, $a) {
32: printf("%s called (%s)!\n", __METHOD__, $f);
33: }
34: public function __call($f, $a) {
35: printf("%s called (%s)!\n", __METHOD__, $f);
36: }
37: }
38:
39: $f = array('Hello','world');
40: var_dump($f('you'));
41: var_dump(call_user_func($f, 'you'));
42:
43: printf("-----\n");
44:
45: $h= new Hello;
46: $f = array($h,'world');
47: var_dump($f('again'));
48: var_dump(call_user_func($f, 'again'));
49:
50: printf("-----\n");
51:
52: function bar() {
53: return array(new Hello,'world');
54: }
55: $f = bar();
56: var_dump($f('there'));
57: var_dump(call_user_func($f, 'there'));
58:
59: printf("-----\n");
60:
61: $x = function ($c,$v) { return array($c, $v); };
62:
63: $c = new Hello;
64: $m = 'world';
65: $f = $x($c, $m);
66: var_dump($f('devs'));
67: var_dump(call_user_func($f, 'devs'));
68:
69: printf("-----\n");
70:
71: $f = array(new Magic, 'foo');
72: $f();
73: call_user_func($f);
74:
75: printf("-----\n");
76:
77: $f = array('Magic2', 'foo');
78: $f();
79: call_user_func($f);
80:
81:
82: printf("-----\n");
83:
84: $f = array('Magic3', 'foo');
85: $f();
86: call_user_func($f);
87:
88: printf("-----\n");
89:
90: $f = array(new Magic3, 'foo');
91: $f();
92: call_user_func($f);
93:
94: printf("-----\n");
95:
96: $f = array(new Hello2, 'world');
97: var_dump($f('you'));
98: var_dump(call_user_func($f, 'you'));
99:
100: ?>
101: --EXPECTF--
102: Strict Standards: Non-static method Hello::world() should not be called statically in %s on line %d
103: Hello, you
104:
105: Notice: Undefined variable: this in %s on line %d
106: NULL
107:
108: Strict Standards: call_user_func() expects parameter 1 to be a valid callback, non-static method Hello::world() should not be called statically in %s on line %d
109: Hello, you
110:
111: Notice: Undefined variable: this in %s on line %d
112: NULL
113: -----
114: Hello, again
115: object(Hello)#1 (0) {
116: }
117: Hello, again
118: object(Hello)#1 (0) {
119: }
120: -----
121: Hello, there
122: object(Hello)#2 (0) {
123: }
124: Hello, there
125: object(Hello)#2 (0) {
126: }
127: -----
128: Hello, devs
129: object(Hello)#4 (0) {
130: }
131: Hello, devs
132: object(Hello)#4 (0) {
133: }
134: -----
135: Magic::__call called (foo)!
136: Magic::__call called (foo)!
137: -----
138: Magic2::__callStatic called (foo)!
139: Magic2::__callStatic called (foo)!
140: -----
141: Magic3::__callStatic called (foo)!
142: Magic3::__callStatic called (foo)!
143: -----
144: Magic3::__call called (foo)!
145: Magic3::__call called (foo)!
146: -----
147: Hello, you
148: NULL
149: Hello, you
150: NULL
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>