apakah saya akan mendapatkan hasil yang sama?
Tidak juga. Saya tidak tahu solusi untuk PHP 5.2.
Apa perbedaan antara new selfdan new static?
selfmerujuk ke kelas yang sama dengan newkata kunci yang sebenarnya ditulis.
static, dalam binding statis akhir PHP 5.3, merujuk ke kelas apa pun dalam hierarki yang Anda panggil metode ini.
Dalam contoh berikut, Bmewarisi kedua metode dari A. The selfDoa terikat untuk Akarena itu didefinisikan dalam Apelaksanaan 's dari metode pertama, sedangkan staticterikat untuk yang disebut kelas (lihat juga get_called_class()).
class A {
public static function get_self() {
return new self();
}
public static function get_static() {
return new static();
}
}
class B extends A {}
echo get_class(B::get_self()); // A
echo get_class(B::get_static()); // B
echo get_class(A::get_self()); // A
echo get_class(A::get_static()); // A