<?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";
if (isset($this)) {
echo 'this exists...' .PHP_EOL;
}
}
/** 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";
if (isset($this)) {
echo 'this exists...' .PHP_EOL;
}
}
}
$obj = new MethodTest;
$obj->runTest('in object context');
MethodTest::runTest('in static context');
$obj->nonStaticFunction();
Calling object method 'runTest' in object context
this exists...
Calling static method 'runTest' in static context
Calling object method 'runTest'
this exists...
Output for 5.3.3
Calling object method 'runTest' in object context
this exists...
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
this exists...
Fatal error: Call to undefined method MethodTest::runTest() in /in/kJtNp on line 34
Process exited with code 255.
Calling object method 'runTest' in object context
this exists...
Fatal error: Call to undefined method MethodTest::runtest() in /in/kJtNp on line 34
Process exited with code 255.
Output for 5.0.0 - 5.0.1
Calling object method 'runTest' in object context
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/kJtNp on line 15
this exists...PHP_EOL
Fatal error: Call to undefined method MethodTest::runtest() in /in/kJtNp on line 34
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/kJtNp 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/kJtNp 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/kJtNp on line 4
Process exited with code 255.