Rumah > Artikel > pembangunan bahagian belakang > Peribadi dalam PHP
Kata kunci ialah perkataan yang digunakan sebagai simpanan dalam program yang mempunyai makna khas yang diberikan kepada mereka. Mereka boleh menjadi arahan atau parameter. Seperti setiap bahasa pengaturcaraan lain, PHP juga mempunyai satu set perkataan khas yang dipanggil kata kunci yang tidak boleh digunakan sebagai nama pembolehubah untuk tujuan lain. Mereka juga dipanggil sebagai nama simpanan.
IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Kata kunci peribadi, seperti namanya ialah kata kunci yang hanya boleh diakses dari dalam kelas yang ditakrifkan. Semua kata kunci adalah secara lalai di bawah kategori awam melainkan ia dinyatakan sebagai peribadi atau dilindungi. Kata kunci peribadi membantu dalam tujuan keselamatan dengan memberikan keterlihatan paling sedikit kepada kata kunci dalam keseluruhan kod. Ia juga lebih mudah untuk dibiaskan apabila hanya terdapat satu kelas yang memanggil kata kunci ini.
Selain kata kunci peribadi, terdapat juga kaedah peribadi. Dalam pengaturcaraan berorientasikan objek, kaedah ialah set prosedur yang dikaitkan dengan mana-mana kelas. Dalam kes kaedah persendirian, kaedah tersebut dibenarkan untuk dipanggil hanya dalam kaedah yang dimiliki oleh kelas yang sama atau modulnya.
Terdapat juga pemalar peribadi dan sifat yang boleh diisytiharkan. Keterlihatan dalam kes ini hanya terhad antara kelas mereka dan bukan kejadian. Jika kedua-dua objek adalah daripada jenis yang sama maka satu objek boleh memanggil kaedah peribadi objek lain.
Sintaks:
Sebarang pembolehubah, sifat atau kaedah boleh diisytiharkan peribadi dengan memberi awalan dengan kata kunci “peribadi”.
class MyClass() { private variable_name; private Method_name(); private $priv = 'Private property'; }
Mari kita memahami cara kerja harta persendirian dalam PHP dengan mengambil contoh di bawah:
Kod:
<?php /** * Definition of PHPExample */ class PHPExample { public $public = 'Public property'; protected $protected = 'Protected property'; private $private = 'Private property'; function displayValue() { echo $this->public; echo "\n"; echo $this->protected; echo "\n"; echo $this->private; echo "\n"; } } $val = new PHPExample(); echo $val->public; // Public will work without any error echo "\n"; echo $val->protected; // Uncaught Error: Cannot access protected property PHPExample::$protected in /workspace/Main.php:21 echo $val->private; // Uncaught Error: Cannot access private property PHPExample::$private in /workspace/Main.php:22 $val->displayValue(); // Displays all 3 Public, Protected and Private properties /** * Definition of PHPExample2 */ class PHPExample2 extends PHPExample { // It supports redeclaration of public and protected properties and not private public $public = 'Public2 property'; protected $protected = 'Protected2 property'; function displayValue() { echo $this->public; echo "\n"; echo $this->protected; echo "\n"; echo $this->private; //Undefined property: PHPExample2::$private in /workspace/Main.php on line 39 } } $val2 = new PHPExample2(); echo $val2->public; // Public will work without error echo "\n"; echo $val2->protected; // Fatal Error echo $val2->private; // Undefined property: PHPExample2::$private in /workspace/Main.php on line 46 $val2->displayValue(); // Shows Public2, Protected2, Undefined ?>
Output 1:
Output 2: Selepas mengulas pada baris 23.
Output 3: Selepas mengulas pada baris 24.
Output 4: Selepas mengulas pada baris 46, 47 dan 40.
Penjelasan kepada kod di atas: Apabila anda menjalankan kod ini sepenuhnya, anda pasti akan mendapat ralat maut pada beberapa nombor baris seperti baris:25,26,45,52,53. Kami mula-mula mengisytiharkan semua 3 hartanah awam, peribadi dan dilindungi dalam kelas utama PHPExample untuk memaparkan perkataan masing-masing. Sebaris 25, kami cuba mengakses kesemua 3 sifat daripada kelas PHPExample. Memandangkan contoh peribadi dan dilindungi tidak boleh diakses di luar kelasnya, kami mendapat ralat maut dalam output seperti yang ditunjukkan dan hanya harta awam dipaparkan.
Dalam separuh kedua kod, kami mengisytiharkan kelas PHPExample2 yang lain di mana kami mengisytiharkan semula nilai paparan untuk harta yang dilindungi dan awam. Perkara yang sama tidak dibenarkan untuk persendirian dan kemudian kami melakukan aksi yang sama seperti pada separuh masa pertama. Memandangkan kami cuba memanggil harta persendirian yang tidak diisytiharkan di sini, kami mendapat ralat harta yang tidak ditentukan.
Mari kita memahami cara kerja kaedah peribadi dan kata kunci dalam PHP dengan mengambil contoh di bawah:
Kod:
<?php class NameExample { // Declaring first name as private value private $first_name; // Declaring last name as private value private $last_name; public $public = 'Displaying from public method'; private $private ='Displaying from private method'; // private function for setting the value for first_name private function fName($first_name) { $this->$first_name = $first_name; echo $this -> private; } // public function for setting the value for last_name public function lName($last_name) { $this->$last_name = $last_name; echo $this -> public; } // public function to display full name value public function dispName() { echo "My name is: " . $this->$first_name . " " . $this->$last_name; } } // Creating a new object named $arun of the class $arun = new NameExample(); // trying to access private class variables $arun->$first_name = "Arun"; // invalid $arun->$last_name = "Sharma"; // invalid // calling the public function to set $first_name and $last_name $john->fName("John"); $arun->lName("Wick"); // $arun-> dispName(); ?>
Output 1:
Output 2: Selepas mengulas baris 32, 33 dan 36.
Penjelasan kepada kod di atas: Dalam contoh di atas, $first_name dan $last_name diisytiharkan sebagai pembolehubah persendirian kelas NameExample dan oleh itu ia tidak boleh dipanggil terus menggunakan objek kelas. Oleh itu, apabila kita mula-mula cuba menjalankan kod, kita mendapat ralat sebagai "Undefined variable: first_name in /workspace/NameExample.php on line 32" dan perkara yang sama berlaku untuk baris 33. Apabila kita mengulas pada 2 baris ini dan menjalankan kod itu semula kami mendapat ralat "Ralat Tidak Ditangkap: Panggil ke nama fungsi ahli() pada null dalam /ruang kerja/NameExample.php:36".
Ini kerana kami telah mengisytiharkan fungsi fName sebagai peribadi dan ia cuba mengaksesnya. Kod berjalan lancar apabila baris 36 turut diulas dan dipaparkan daripada nama kaedah kerana ia adalah kaedah awam.
Di bawah adalah Kelebihan Menggunakan Private dalam PHP:
Berikut ialah Peraturan dan Peraturan yang perlu dipatuhi untuk Peribadi dalam PHP:
Persendirian ialah cara menyekat kebolehcapaian pembolehubah, kaedah atau sifat sesuatu kelas. Mereka hanya boleh diakses dalam kelas yang diisytiharkan dan bukan dari mana-mana subkelas yang menjangkau daripadanya. Mana-mana harta yang dilindungi daripada kelas induk boleh ditindih oleh subkelas dan didedahkan kepada umum tetapi tidak boleh dijadikan sebagai peribadi.
Atas ialah kandungan terperinci Peribadi dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!