apakah saya akan mendapatkan hasil yang sama?
Tidak juga. Saya tidak tahu solusi untuk PHP 5.2.
Apa perbedaan antara new self
dan new static
?
self
merujuk ke kelas yang sama dengan new
kata 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, B
mewarisi kedua metode dari A
. The self
Doa terikat untuk A
karena itu didefinisikan dalam A
pelaksanaan 's dari metode pertama, sedangkan static
terikat 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