Rumah >pembangunan bahagian belakang >tutorial php >Akses Pengubahsuai dalam PHP

Akses Pengubahsuai dalam PHP

PHPz
PHPzasal
2024-08-29 13:06:31984semak imbas

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

Bila hendak menggunakan Access Modifiers dalam PHP?

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.

Pelbagai Pengubahsuai Akses dalam PHP

Berikut ialah Pengubahsuai Akses dalam PHP yang disebut di bawah

1. Pengubah suai akses awam

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.

Akses Pengubahsuai dalam 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";
}
?>

2. Pengubah suai akses peribadi

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.

3. Pengubah suai akses dilindungi

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

4. Pengubah suai capaian abstrak

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.

5. Pengubah suai akses akhir

Jika mana-mana kelas diisytiharkan sebagai final, kami tidak boleh melanjutkan kelas itu. PHP mengehadkan kelas akhir daripada diwarisi.

6. Pengubah suai akses statik

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..
}

Kesimpulan

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!

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
Artikel sebelumnya:PHP display_errorsArtikel seterusnya:PHP display_errors