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>