Quick question regarding __callStatic() in PHP;
class Test{
public static function __callStatic($method, $arguments){
echo $method . PHP_EOL;
}
public function __call($method, $arguments){
echo $method . PHP_EOL;
}
}
$test = new Test();
$test->foo();
$test->{'hello-world'}();
Test::bar();
Test::{'goodbye-universe'}();
Expected output:
foo
hello-world
bar
goodbye-universe
Actual output:
foo
hello-world
bar
PHP Parse error: syntax error, unexpected '{', expecting T_STRING or T_VARIABLE or '$' in - on line 18
Is this syntax not permissible, nor functionality achievable with __callStatic()?
Note: Trying to get away with no temporary variables. The following will work:
$goodbyeUniverse = 'goodbye-universe';
Test::$goodbyeUniverse();
But I’m trying to avoid that.
This has been resolved in PHP 5.4
https://svn.php.net/repository/php/php-src/tags/php_5_4_0RC8/NEWS