<?php
class A{
public static function test(){
return new self();
}
public static function another_test(){
return new static();
}
public static function alert(){
echo "A";
}
}
class B extends A{
public static function alert(){
echo "B";
}
}
$b = new B();
$c = B::test();
$c->alert();
$d = B::another_test();
$d->alert();
PD9waHAKCmNsYXNzIEF7CglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRlc3QoKXsKCQlyZXR1cm4gbmV3IHNlbGYoKTsKCX0KCQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhbm90aGVyX3Rlc3QoKXsKCQlyZXR1cm4gbmV3IHN0YXRpYygpOwoJfQoJCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGFsZXJ0KCl7CgkJZWNobyAiQSI7Cgl9Cn0KCmNsYXNzIEIgZXh0ZW5kcyBBewoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhbGVydCgpewoJCWVjaG8gIkIiOwoJfQp9CgokYiA9IG5ldyBCKCk7CiRjID0gQjo6dGVzdCgpOwokYy0+YWxlcnQoKTsKCiRkID0gQjo6YW5vdGhlcl90ZXN0KCk7CiRkLT5hbGVydCgpOw==