-, , PHP 5.3.0 , , __callStatic. , , , . :
<?php
class A {
public function __call($method, $args) {
echo 'A::__call, ' .
var_export(array($method, $args), true), PHP_EOL;
}
public static function __callStatic($method, $args) {
echo 'A::__callStatic, ' .
var_export(array($method, $args), true), PHP_EOL;
}
}
$a = new A;
$a->foo('abc');
A::bar('123');
class B extends A {
function invokeStatic($args) {
echo 'B::invokeStatic', PHP_EOL;
self::someStatic($args);
}
}
$b = new B;
$b->invokeStatic('456');
?>
(, , ):
A::__call, array (
0 => 'foo',
1 =>
array (
0 => 'abc',
),
)
A::__callStatic, array (
0 => 'bar',
1 =>
array (
0 => '123',
),
)
B::invokeStatic
A::__callStatic, array (
0 => 'someStatic',
1 =>
array (
0 => '456',
),
)
, "!". , , .
PHP ? :
$ php -r 'echo phpversion(), PHP_EOL;'
5.3.3-7+squeeze1