Rumah >pembangunan bahagian belakang >tutorial php >Akses Pengubahsuai dalam PHP
Pengubah suai akses ialah cara untuk menetapkan skop kebolehaksesan dan hak kepada pembolehubah mana-mana pengecam PHP yang lain. PHP menyokong pelbagai kata kunci untuk membuat sebarang pembolehubah untuk mengakses sebarang pembolehubah dan pengecam. Kita boleh menetapkan kata kunci ini kepada kelas, fungsi atau pengecam. Kata kunci ini – awam, peribadi, dilindungi, abstrak, muktamad, dsb.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
PHP mempunyai beberapa pengehadan pada pengubah suai aksesnya, tidak seperti Java. Kami tidak boleh menggunakan semua pengubah suai akses PHP pada peringkat kelas, tahap fungsi dan tahap pengecam. Kami boleh menggunakan pengubah suai akses ini mengikut keperluan perniagaan kami untuk memberikan kebenaran atau membatalkan kebenaran sepanjang program atau aplikasi.
Berikut ialah pengubahsuai senarai dan sama ada ia berkenaan atau tidak:
Access Modifier | Class Level | Function Level | Variable Level |
public | NA | YES | YES |
private | NA | YES | YES |
protected | NA | YES | YES |
abstract | YES | YES | NA |
final | YES | YES | NA |
Static | NA | YES | YES |
Dalam kisah di atas, NA menandakan Tidak Berkenaan. Ini bermakna kita tidak boleh menggunakan orang awam, peribadi dan dilindungi di peringkat kelas. Kita boleh menggunakan abstrak dan akhir hanya pada peringkat kelas.
Berikut ialah Pengubahsuai Akses dalam PHP yang disebut di bawah
Orang awam ialah pengubah suai lalai seperti JAVA dalam PHP. Ini bermakna jika kami tidak menggunakan sebarang pengubah dengan fungsi pengecam secara lalai, ia dianggap sebagai pengubah akses awam. Ini adalah salah satu yang paling banyak digunakan. Apabila kita sampai kepada kebolehgunaan semula kod fungsi, kita biasanya menggunakan pengubah suai akses awam. Kerana orang awam boleh digunakan dari mana-mana sahaja, dalam kelas pastinya, di luar kelas, dalam kelas lanjutan, dan jika boleh digunakan semula awam itu tidak terhad kepada mana-mana kelas, kami boleh menggunakannya di mana-mana sahaja kami memasukkan fail. Seperti yang dinyatakan dalam jadual di atas, kami tidak boleh menggunakan pengubah suai awam ini dengan kelas bersama-sama dengan peribadi dan dilindungi juga.
Kini, tiba masanya untuk melihat contoh pengubah suai akses awam:
<?php class MyAccess { var $var = "This is first var"; // print var variable value function returnVar() { echo $this->var; } } $obj1 = new MyAccess();$obj1->returnVar(); ?>
Dalam kod di atas, fungsi returnVar() telah ditakrifkan tanpa pengubah akses, jadi ini akan berfungsi sebagai umum kerana ini adalah pengubah suai lalai dalam bahasa PHP.
awam, persendirian dan dilindungi tidak akan terpakai di peringkat kelas; mari lihat dengan contoh.
<?php class public MyAccess { var $var = "This is first var"; function returnVar() { echo $this->var; } } $obj1 = new MyAccess(); $obj1->returnVar(); ?>
Kod di atas akan memberikan ralat seperti yang dinyatakan di bawah:
( ! ) Ralat penghuraian: ralat sintaks, ‘awam’ yang tidak dijangka (T_PUBLIC), menjangkakan pengecam (T_STRING) dalam E:wampwwwtwitindex.php pada baris 2
Ini tetap sama untuk peribadi dan dilindungi juga.
<?php class private MyAccess { var $var = "This is first var"; } ?> <?php class protected MyAccess { var $var = "This is first var"; } ?>
Pengubah suai ini kepada kami kata kunci peribadi untuk diproses dengannya. Kami tidak boleh menggunakan pengubah suai peribadi dengan kelas. Kita boleh menggunakan ini dengan pembolehubah kelas dan kaedah kelas sahaja (seperti yang telah kita nyatakan dalam jadual di atas). Apabila kami mengisytiharkan dan menggunakan peribadi, ia tidak boleh diakses menggunakan objek kelas. Ia hanya boleh digunakan dalam kelas.
Sebagai Contoh
<?php class MyAccess { var $var = "This is first var"; private $fist_name; // simple class method function returnVar() { echo $this->fist_name; } function set_fist_name($set_this){ $this->fist_name = $set_this; } } $obj1 = new MyAccess(); echo $obj1->fist_name; // will give the error $obj1->set_fist_name("Jai Shre"); $obj1->returnVar(); ?>
gema $obj1->nama_penumbuk; // akan memberikan ralat
Barisan kod ini boleh kami gunakan kerana ini akan menghasilkan ralat. Ini adalah sesuatu yang kita tidak boleh mengakses pembolehubah persendirian menggunakan objek kelas itu. Tetapi kita boleh menggunakan ini dengan menggunakan tetapannya dan kaedah pengambil seperti yang kita gunakan dalam kod di atas. $obj1->set_fist_name(“Jai Shre”); baris kod akan menetapkan nilai dalam pembolehubah dan menggunakan $obj1->returnVar(); kita boleh mendapatkan nilai pembolehubah yang ditetapkan.
Sama seperti awam dan peribadi, protected sendiri tidak menyokong di peringkat kelas. Seperti pengubah suai peribadi, protected juga mengehadkan akses pembolehubah kelas atau fungsi dari luar kelas. Ia boleh digunakan dalam kelas yang sama dan daripada subkelas (kelas kanak-kanak).
Sebagai Contoh
<?php class MyAccess { var $var = "This is first var"; protected $fist_name; // simple class method function returnVar() { echo $this->fist_name; } function set_fist_name($set_this){ $this->fist_name = $set_this; } } class child extends MyAccess { function setVal($set_this){ $this->fist_name = $set_this; } function getVal(){ echo $this->fist_name; } } $obj1 = new child(); //echo $obj1->fist_name; // will give the error $obj1->setVal("Jai Shre"); $obj1->getVal(); ?>
gema $obj1->nama_penumbuk; baris kod akan memberikan ralat di bawah
Output:
Ralat maut: Tidak dapat mengakses harta yang dilindungi MyAccess::$fist_name dalam E:wampwwwtwitindex.php dalam talian 20
Ia boleh digunakan pada kelas dan fungsi, bukan pada pembolehubah kelas. Jika mana-mana kelas mempunyai sekurang-kurangnya satu fungsi abstrak, maka ia mesti diisytiharkan sebagai abstrak. Kami tidak boleh membuat instantiate kelas abstrak. Kelas abstrak terutamanya dianggap sebagai kelas tidak lengkap.
Jika mana-mana kelas diisytiharkan sebagai final, kami tidak boleh melanjutkan kelas itu. PHP mengehadkan kelas akhir daripada diwarisi.
Kata kunci statik boleh digunakan untuk menjadikan sebarang fungsi sebagai statik. Ia membolehkan keupayaan fungsi itu supaya seseorang boleh menggunakannya dalam mencipta objek kelas itu di mana ia telah diisytiharkan. Contoh kaedah statik –
public static function static Function() { // declaration goes here.. }
Kita hendaklah sentiasa menggunakan pengubah suai akses mengikut keperluan perniagaan. Menggunakan persendirian dan dilindungi, kami boleh menyekat penggunaan langsung pembolehubah persendirian dan kaedah persendirian dari luar kelas yang diisytiharkan.
Atas ialah kandungan terperinci Akses Pengubahsuai dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!