Pengenalan kepada Pengaturcaraan Berorientasikan Objek PHP: Cara menggunakan pengubah suai akses untuk melindungi sifat dan kaedah objek
Dalam PHP, Pengaturcaraan Berorientasikan Objek (OOP) ialah kaedah pengaturcaraan yang sangat biasa dan berkuasa. Dengan cara ini, kita boleh mengabstrak entiti ke dalam objek dan mentakrifkan sifat dan kaedah mereka untuk menerangkan tingkah laku mereka. Walau bagaimanapun, kadangkala kita perlu mengehadkan akses kepada objek untuk melindungi keadaan dalamannya dan beberapa kaedah utama. Untuk tujuan ini, PHP menyediakan pengubah suai akses untuk membantu kami mencapai tujuan ini.
Terdapat tiga pengubah suai akses yang biasa digunakan dalam PHP: awam, peribadi dan dilindungi. Pengubah suai akses yang berbeza mentakrifkan keterlihatan dan kebolehcapaian sifat dan kaedah objek kepada dunia luar. Di bawah ini kami akan memperkenalkan penggunaan ketiga-tiga pengubah akses ini secara terperinci.
Pengubah suai akses awam ialah pengubah suai yang paling biasa, yang bermaksud bahawa sifat dan kaedah objek boleh diakses dan dipanggil dari mana-mana sahaja. Apabila kami tidak mentakrifkan sebarang pengubah suai akses, lalai ialah pengubah suai akses awam.
Secara amnya, kami mentakrifkan sifat kelas sebagai peribadi atau dilindungi, dan mentakrifkan kaedah sebagai awam, supaya kod luaran boleh mengakses dan mengendalikan sifat objek melalui kaedah tersebut. Berikut ialah contoh menggunakan pengubah suai akses awam:
class Person { public $name; public function sayHello() { echo "Hello, my name is ".$this->name; } } $person = new Person(); $person->name = "John"; $person->sayHello(); // 输出 "Hello, my name is John"
Dalam kod di atas, kami mentakrifkan kelas Orang
dengan atribut $name
dan sayHello( )
Kaedah semuanya terbuka. Dengan menetapkan $name
sebagai harta awam, kod luaran boleh terus mengubah suai dan mengakses nilai harta tersebut. Kaedah sayHello()
boleh mencetak ucapan dalam kod luaran dengan menghidupkan objek dan memanggil kaedah tersebut. Person
类,其中$name
属性和sayHello()
方法都是公有的。通过将$name
设置为公有属性,外部代码可以直接修改和访问该属性的值。而sayHello()
方法可以在外部代码中通过实例化对象并调用该方法来打印输出一条问候语。
私有访问修饰符表示对象的属性和方法只能在所属的类内部访问和调用,外部代码无法直接访问。为了访问私有属性和方法,我们需要使用类内部定义的公有方法。下面是一个使用私有访问修饰符的示例:
class Person { private $name; public function setName($name) { $this->name = $name; } public function sayHello() { echo "Hello, my name is ".$this->name; } } $person = new Person(); $person->setName("John"); $person->sayHello(); // 输出 "Hello, my name is John"
在上面的代码中,$name
属性被定义为私有的,外部代码无法直接访问。为了对该属性赋值,我们定义了一个公有的setName($name)
方法,并在其中通过方法内部访问私有属性来设置其值。同样,sayHello()
方法可以在外部代码中通过实例化对象并调用该方法来打印输出问候语。
受保护访问修饰符表示对象的属性和方法只能在所属的类及其子类中访问和调用,外部代码无法直接访问。和私有访问修饰符类似,为了访问受保护的属性和方法,我们也需要使用类内部定义的公有方法。下面是一个使用受保护访问修饰符的示例:
class Person { protected $name; public function setName($name) { $this->name = $name; } public function sayHello() { echo "Hello, my name is ".$this->name; } } class Student extends Person { public function study() { echo $this->name." is studying."; } } $student = new Student(); $student->setName("John"); $student->sayHello(); // 输出 "Hello, my name is John" $student->study(); // 输出 "John is studying."
上面的代码中,Person
类的$name
属性被定义为受保护的,而Student
类继承了Person
类。在Student
类内部,我们可以直接访问和调用继承自Person
类的受保护属性和方法。在外部代码中,我们通过实例化Student
$name
ditakrifkan sebagai peribadi dan tidak boleh diakses terus oleh kod luaran. Untuk memberikan nilai kepada harta ini, kami mentakrifkan kaedah setName($name)
awam dan menetapkan nilainya dengan mengakses harta peribadi di dalam kaedah tersebut. Begitu juga, kaedah sayHello()
boleh digunakan dalam kod luaran untuk mencetak ucapan dengan membuat seketika objek dan memanggil kaedah tersebut. 🎜$name
bagi kelas Orang
ditakrifkan sebagai dilindungi, manakala Orang
. Di dalam kelas Pelajar
, kami boleh terus mengakses dan memanggil sifat dan kaedah yang dilindungi yang diwarisi daripada kelas Orang
. Daripada kod luaran, kami mengakses dan memanggil sifat dan kaedah yang dilindungi dengan menjadikan objek Pelajar
dan memanggil kaedah awam yang ditentukan. 🎜🎜Dengan menggunakan pengubah suai akses, kami boleh mengawal hak akses objek dengan lebih baik dan mengelakkan beberapa akses dan operasi yang tidak munasabah. Dalam pembangunan sebenar, kita harus memilih dan menggunakan pengubah akses secara munasabah berdasarkan keperluan dan prinsip reka bentuk. Saya harap artikel ini akan membantu anda memahami dan menggunakan pengubah suai akses dalam PHP! 🎜Atas ialah kandungan terperinci Pengenalan kepada Pengaturcaraan Berorientasikan Objek PHP: Cara Menggunakan Pengubahsuai Akses untuk Melindungi Sifat dan Kaedah Objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!