<?php
class abc
{
private static $main;
private function __construct()
{
}
public function ob($b)
{
return $b.__FUNCTION__."\n";
}
public function __destruct()
{
echo __FUNCTION__, "\n";
}
public function enable()
{
echo __FUNCTION__, "\n";
self::$main = new self;
register_shutdown_function(__CLASS__.'::shutdown');
}
public static function shutdown()
{
echo __FUNCTION__, "\n";
register_shutdown_function(__CLASS__.'::tail');
}
public static function tail()
{
echo __FUNCTION__, "\n";
ob_start(array(self::$main, 'ob'));
}
}
abc::enable();
Fatal error: Uncaught Error: Non-static method abc::enable() cannot be called statically in /in/uSRAg:44
Stack trace:
#0 {main}
thrown in /in/uSRAg on line 44
Process exited with code 255.
Strict Standards: Non-static method abc::enable() should not be called statically in /in/uSRAg on line 44
enable
shutdown
tail
__destruct
ob
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.1
Strict Standards: Non-static method abc::enable() should not be called statically in /in/uSRAg on line 44
enable
__destruct
Output for 5.0.5
Strict Standards: Non-static method abc::enable() should not be called statically in /in/uSRAg on line 44
enable
__destruct
Warning: (Registered shutdown functions) Unable to call abc::shutdown() - function does not exist in Unknown on line 0
Output for 5.0.0 - 5.0.4
Strict Standards: Non-static method abc::enable() should not be called statically in /in/uSRAg on line 44
enable
Warning: Unknown: Unable to call abc::shutdown() - function does not exist in Unknown on line 0
__destruct
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/uSRAg on line 6
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/uSRAg on line 6
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/uSRAg on line 6
Process exited with code 255.