<?php
class MethodTest
{
public function nonStaticFunction()
{
MethodTest::runTest();
}
public function __call($name, $arguments)
{
// Note: value of $name is case sensitive.
echo "Calling object method '$name' "
. implode(', ', $arguments). "\n";
}
/** As of PHP 5.3.0 */
public static function __callStatic($name, $arguments)
{
// Note: value of $name is case sensitive.
echo "Calling static method '$name' "
. implode(', ', $arguments). "\n";
}
}
$obj = new MethodTest;
$obj->runTest('in object context');
MethodTest::runTest('in static context');
$obj->nonStaticFunction('in object context');
Calling object method 'runTest' in object context
Calling static method 'runTest' in static context
Calling object method 'runTest'
Output for 5.3.3
Calling object method 'runTest' in object context
Calling static method 'runTest' in static context
Calling static method 'runTest'
Output for 5.2.10 - 5.2.17
Calling object method 'runTest' in object context
Fatal error: Call to undefined method MethodTest::runTest() in /in/AuOug on line 26
Process exited with code 255.
Calling object method 'runTest' in object context
Fatal error: Call to undefined method MethodTest::runtest() in /in/AuOug on line 26
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/AuOug on line 4
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/AuOug on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/AuOug on line 4
Process exited with code 255.