Rumah >pembangunan bahagian belakang >masalah PHP >Apakah perbezaan antara php4 dan php5
Perbezaan antara php4 dan php5: 1. Tiada pemusnah dalam php4, tetapi terdapat pemusnah dalam php5 2. Apabila menghantar pembolehubah ke fungsi atau kaedah dalam php4, pembolehubah sebenarnya disalin. , dan objek dalam php5 sentiasa wujud dalam bentuk rujukan.
Persekitaran pengendalian tutorial ini: sistem windows10, versi PHP7.1, komputer DELL G3
Pembina dan pemusnah
Dalam PHP4, apabila fungsi mempunyai nama yang sama dengan objek, fungsi ini akan menjadi pembina objek, dan tiada konsep pemusnah dalam PHP4.
Dalam PHP5, pembina dinamakan seragam __construct, dan konsep pemusnah diperkenalkan, yang dinamakan seragam __destruct.
Contoh 1: Pembina dan pemusnah
class foo {undefined var $x; function __construct($x) {undefined $this->x = $x; } function display() {undefined print($this->x); } function __destruct() {undefined print("bye bye"); } } $o1 = new foo(4); $o1->display(); ?>
Dalam contoh di atas, apabila anda menamatkan panggilan ke kelas foo, pemusnahnya akan dipanggil "bye bye" di atas menjadi output.
Rujukan objek
Seperti yang kita semua tahu, dalam PHP4, menghantar pembolehubah ke fungsi atau kaedah sebenarnya menyalin pembolehubah, yang bermaksud pembolehubah yang anda hantar ke fungsi atau kaedah disalin. Merupakan salinan pembolehubah ini, melainkan anda menggunakan simbol rujukan "&" untuk mengisytiharkan bahawa anda ingin membuat rujukan, bukan salinan. Dalam PHP5, objek sentiasa wujud dalam bentuk rujukan, dan operasi tugasan dalam objek juga merupakan operasi rujukan.
Contoh 2: Rujukan objek
class foo {undefined var $x; function setX($x) {undefined $this->x = $x; } function getX() {undefined return $this->x; } } $o1 = new foo; $o1->setX(4); $o2 = $o1; $o1->setX(5); if($o1->getX() == $o2->getX()) print("Oh my god!"); ?>
Klon objek
Seperti yang dinyatakan di atas, apabila objek sentiasa dipanggil sebagai rujukan, jika saya ingin mendapatkan Apa kaitan dengan salinan objek? PHP5 menyediakan ciri baharu, iaitu pengklonan objek, dengan sintaks __klon.
Contoh 3: Pengklonan objek
class foo {undefined var $x; function setX($x) {undefined $this->x = $x; } function getX() {undefined return $this->x; } } $o1 = new foo; $o1->setX(4); $o2 = $o1->__clone(); $o1->setX(5); if($o1->getX() != $o2->getX()) print("Copies are independant"); ?>
Kaedah pengklonan objek wujud dalam banyak bahasa aplikasi lain, jadi anda tidak perlu risau tentang kestabilannya. :)
Mod peribadi, awam dan dilindungi dalam objek
Dalam PHP4, semua kaedah dan pembolehubah objek adalah awam, yang bermaksud anda boleh mengendalikannya di luar objek sebarang pembolehubah dan kaedah . PHP5 memperkenalkan tiga mod baharu untuk mengawal kebenaran akses ini: Awam, Dilindungi dan Peribadi.
Mod awam (Awam): membenarkan kawalan operasi di luar objek.
Mod peribadi (Persendirian): Hanya kaedah dalam objek ini dibenarkan untuk mengendalikan dan mengawalnya.
Mod dilindungi (Dilindungi): Membenarkan objek ini dan objek induknya untuk mengendalikan dan mengawalnya.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apakah perbezaan antara php4 dan php5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!