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