<?PHP
ABSTRACT CLASS Base
{
protected static $stub = array('baz');
//final public function boot()
static public function boot()
{
print __METHOD__.'-> '.get_called_class().PHP_EOL;
array_walk(static::$stub, function()
{
print __METHOD__.'-> '.get_called_class().PHP_EOL;
});
}
public function __construct()
{
self::boot();
print __METHOD__.'-> '.get_called_class().PHP_EOL;
array_walk(static::$stub, function()
{
print __METHOD__.'-> '.get_called_class().PHP_EOL;
});
}
}
CLASS Sub EXTENDS Base
{
}
// static boot
Base::boot(); print PHP_EOL;
// Base::boot -> Base
// Base::{closure} -> Base
Sub::boot(); print PHP_EOL;
// Base::boot -> Sub
// Base::{closure} -> Base
new sub; print PHP_EOL;
// Base::boot -> Sub
// Base::{closure} -> Base
// Base->__construct -> Sub
// Base->{closure} -> Sub
// instance boot
new sub; print PHP_EOL;
// Base->boot -> Sub
// Base->{closure} -> Sub
// Base->__construct -> Sub
// Base->{closure} -> Sub
Base::boot-> Base
{closure}-> Base
Base::boot-> Sub
{closure}-> Sub
Base::boot-> Sub
{closure}-> Sub
Base::__construct-> Sub
{closure}-> Sub
Base::boot-> Sub
{closure}-> Sub
Base::__construct-> Sub
{closure}-> Sub
Base::boot-> Base
Base::{closure}-> Base
Base::boot-> Sub
Base::{closure}-> Sub
Base::boot-> Sub
Base::{closure}-> Sub
Base::__construct-> Sub
Base::{closure}-> Sub
Base::boot-> Sub
Base::{closure}-> Sub
Base::__construct-> Sub
Base::{closure}-> Sub
Output for 5.4.0 - 5.4.29, 5.5.0 - 5.5.13
Base::boot-> Base
Base::{closure}-> Base
Base::boot-> Sub
Base::{closure}-> Base
Base::boot-> Sub
Base::{closure}-> Base
Base::__construct-> Sub
Base::{closure}-> Sub
Base::boot-> Sub
Base::{closure}-> Base
Base::__construct-> Sub
Base::{closure}-> Sub
Output for 5.3.0 - 5.3.29
Base::boot-> Base
Warning: get_called_class() called from outside a class in /in/bhg64 on line 13
Base::{closure}->
Base::boot-> Sub
Warning: get_called_class() called from outside a class in /in/bhg64 on line 13
Base::{closure}->
Base::boot-> Sub
Warning: get_called_class() called from outside a class in /in/bhg64 on line 13
Base::{closure}->
Base::__construct-> Sub
Warning: get_called_class() called from outside a class in /in/bhg64 on line 24
Base::{closure}->
Base::boot-> Sub
Warning: get_called_class() called from outside a class in /in/bhg64 on line 13
Base::{closure}->
Base::__construct-> Sub
Warning: get_called_class() called from outside a class in /in/bhg64 on line 24
Base::{closure}->
Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17
Parse error: syntax error, unexpected T_STATIC, expecting ')' in /in/bhg64 on line 11
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_STATIC, expecting ')' in /in/bhg64 on line 11
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_CLASS in /in/bhg64 on line 2
Process exited with code 255.