Rumah >pembangunan bahagian belakang >tutorial php >Apakah tahap kawalan akses untuk fungsi PHP?

Apakah tahap kawalan akses untuk fungsi PHP?

PHPz
PHPzasal
2024-04-11 10:06:01984semak imbas

Terdapat 3 tahap kawalan akses untuk fungsi PHP: awam, dilindungi dan peribadi. Fungsi awam boleh diakses dari mana-mana sahaja, fungsi yang dilindungi hanya boleh diakses oleh kelas dan subkelasnya sendiri, dan fungsi peribadi hanya boleh diakses oleh kelasnya sendiri. Apabila mengubah suai tahap kawalan akses, hanya tambah kata kunci yang sepadan sebelum pengisytiharan fungsi, seperti fungsi awam, fungsi dilindungi, fungsi peribadi.

PHP 函数的访问控制级别有哪些?

Tahap kawalan akses fungsi PHP

Tahap kawalan akses fungsi PHP menentukan bahagian fungsi yang boleh diakses. Ia membolehkan kami menyekat akses kepada fungsi, dengan itu meningkatkan kebolehselenggaraan dan keselamatan kod kami.

Tahap Kawalan Akses

Terdapat tiga tahap kawalan akses dalam PHP:

  • awam: Fungsi boleh diakses dari mana-mana sahaja.
  • dilindungi: Fungsi hanya boleh diakses daripada kelas di mana fungsi itu terletak dan subkelasnya.
  • peribadi: Fungsi hanya boleh diakses daripada kelas di mana fungsi itu terletak.

Syntax

Apabila mengubah suai tahap kawalan akses, cuma tambah kata kunci yang sepadan sebelum pengisytiharan fungsi.

// public 函数
public function myPublicFunction() {
    // ...
}

// protected 函数
protected function myProtectedFunction() {
    // ...
}

// private 函数
private function myPrivateFunction() {
    // ...
}

Kes praktikal

Andaikan kita mempunyai kelas Pengguna yang menyimpan data pengguna. Kami mahu membenarkan akses kepada data pengguna hanya melalui kaedah awam kelas ini. Untuk mencapai matlamat ini, kami akan menetapkan fungsi yang mendapatkan data pengguna sebagai dilindungi: User。我们希望只允许通过该类的公共方法访问用户数据。为了实现这一点,我们将对获取用户数据的函数设置为 protected:

class User {
    protected $name;
    protected $email;

    public function getName() {
        return $this->name;
    }

    public function getEmail() {
        return $this->email;
    }
}

现在,其他类可以通过 User 对象访问 getName()getEmail() 方法,但无法直接访问 $name$email 属性。

注意事项

  • 默认情况下,PHP 函数的访问控制级别是 public。
  • 如果尝试访问私有或受保护的函数,则会引发 Fatal Error
  • 受保护的函数可以在派生类中通过 parent::rrreee
  • Kini kelas lain boleh mengakses getName() dan melalui objek <code>User getEmail () kaedah, tetapi tiada akses langsung kepada sifat $name dan $email.
Nota🎜🎜🎜🎜Secara lalai, tahap kawalan akses fungsi PHP adalah awam. 🎜🎜Jika anda cuba mengakses fungsi peribadi atau dilindungi, 🎜Ralat Fatal🎜 akan dibangkitkan. 🎜🎜Fungsi yang dilindungi boleh diakses dalam kelas terbitan melalui parent::. 🎜🎜Pertimbangkan untuk menggunakan tahap kawalan akses untuk melindungi akses kepada data dan fungsi sensitif. Penggunaan kawalan akses yang betul boleh meningkatkan keselamatan kod. 🎜🎜

Atas ialah kandungan terperinci Apakah tahap kawalan akses untuk fungsi 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