Anda tidak boleh mengembalikan nilai dalam pembina, jadi cara paling biasa untuk menjana ralat dari dalam pembina ialah membuang pengecualian.
Dilindungi: ahli kelas boleh diakses daripada kaedah di dalam objek oleh subkelas dan kelas induk bagi kelas di mana mereka berada
Iaitu, kedua-dua kelas hanya boleh melihat harta peribadi mereka sendiri, dan tiada hubungan antara ahli persendirian.
echo $obj->staticValue();//Kaedah 1
echo Foo::staticValue();//Kaedah 2
?
Objek klon Dalam PHP4, apabila objek baharu dikembalikan, objek itu sendiri dikembalikan
Dalam PHP5, apabila objek baharu, objek yang ditunjuk akan dikembalikan. Handle"
Ini bermakna dalam PHP5, apabila memberikan contoh objek ($obj1) kepada pembolehubah lain ($obj2), kedua-dua objek menghala ke kawasan memori yang sama.
Contohnya:
php
ujian kelas{
awam $str;
}
$obj1=ujian baharu();$obj1->str="obj1"; obj1;
$obj2->str="obj2";
gema $obj1->str;//akan mengeluarkan "obj1"
?>
Sebab $obj1 dan $ obj2 menunjuk ke kawasan memori yang sama, jadi apabila mana-mana objek digunakan untuk mengubah suai nilai pembolehubah ahli, ia akan menjejaskan objek lain.
Tetapi kadangkala, kita perlu membuat salinan objek (dua kawasan memori bebas Pada masa ini, anda boleh menggunakan klon arahan bahasa
Rujuk contoh di bawah; 🎜>
Salin kod
}
$obj1=ujian baharu();
$obj1->str="obj1"; "obj2";
gema $obj1->str;//akan mengeluarkan "obj2"
?>
ibu bapa:: dan diri sendiri:
self: : menunjuk ke kelas semasa, dan biasanya digunakan untuk mengakses ahli statik, kaedah dan pemalar
induk:: menunjuk ke kelas induk, dan ia sering digunakan untuk memanggil pembina dan kaedah induk kelas, dan juga boleh digunakan untuk mengakses ahli kelas induk dan pemalar
Nota: Anda harus menggunakan induk:: bukannya nama khusus kelas induk, kerana ini membolehkan anda menukar hierarki kelas anda dengan mudah.
Contoh:
Salin kod
Kod adalah seperti berikut:
}
Anak kelas memanjangkan Bapa {
fungsi awam __construct(){
parent::__construct();//Kaedah 1
// Father::__construct();//Kaedah 2
echo "Panggil pembina subkelas";
}
}
$son=new Son();
?>
Hasil:
Panggil pembina kelas induk
Panggil pembina kaedah subkelas 1 disyorkan untuk fungsi
, atas sebab yang dinyatakan di atas.
instanceof instance
Salin kod
Kodnya adalah seperti berikut:
public $name=__CLASS__
}
class Bulatan{
public $name=__CLASS__;
}
function checkIfRectangle($shape){
if ($shape instanceof Rectangle ){
echo $shape->name; }lain {
gema "Objek ini bukan contoh kelas Rectangle";
}
}
checkIfRectangle(new Square());//Output: Square
checkIfRectangle(new Circle());/ /Output: Objek bukan contoh kelas Rectangle
?>
Nota: __CLASS__ ialah pemalar khas yang digunakan untuk menyimpan nama kelas semasa