Rumah >pembangunan bahagian belakang >masalah PHP >Apakah perbezaan antara php4 dan php5

Apakah perbezaan antara php4 dan php5

WBOY
WBOYasal
2022-02-11 15:34:542002semak imbas

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.

Apakah perbezaan antara php4 dan php5

Persekitaran pengendalian tutorial ini: sistem windows10, versi PHP7.1, komputer DELL G3

Apakah perbezaan antara php4 dan php5

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn