Annotation of embedaddon/php/Zend/tests/fr47160.phpt, revision 1.1
1.1 ! misho 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>