1--TEST--
2Indirect method call by array - Calling __call() and __callStatic()
3--FILE--
4<?php
5
6class foo {
7    public function __call($a, $b) {
8        printf("From %s:\n", __METHOD__);
9        var_dump($a);
10        var_dump($this);
11    }
12    static public function __callStatic($a, $b) {
13        printf("From %s:\n", __METHOD__);
14        var_dump($a);
15        var_dump($this);
16    }
17}
18
19$arr = array('foo', 'abc');
20try {
21    $arr();
22} catch (Throwable $e) {
23    echo "Exception: " . $e->getMessage() . "\n";
24}
25$foo = new foo;
26$arr = array($foo, 'abc');
27$arr();
28
29
30?>
31--EXPECTF--
32From foo::__callStatic:
33string(3) "abc"
34Exception: Using $this when not in object context
35From foo::__call:
36string(3) "abc"
37object(foo)#%d (0) {
38}
39