Ringkasan pengubah kawalan kebenaran PHP: Gambaran keseluruhan penggunaan dan perbezaan pelbagai pengubah kebenaran

WBOY
Lepaskan: 2024-01-19 10:30:01
asal
1294 orang telah melayarinya

Ringkasan pengubah kawalan kebenaran PHP: Gambaran keseluruhan penggunaan dan perbezaan pelbagai pengubah kebenaran

Sebagai bahasa pengaturcaraan yang biasa digunakan untuk pembangunan web, PHP juga mempunyai keperluan yang ketat untuk pengurusan kebenaran. Untuk memastikan keselamatan program, pembangun mesti mengawal kebenaran pada pelbagai bahagian program melalui pengubahsuai kawalan kebenaran. Artikel ini akan memperkenalkan pengubah suai kawalan kebenaran dalam PHP secara terperinci, membantu pembaca memahami fungsi dan perbezaannya dengan lebih baik serta memberikan contoh kod yang sepadan.

  1. pengubah suai awam

Pengubah suai awam ialah pengubah kawalan kebenaran yang paling biasa digunakan dalam PHP, digunakan untuk menerangkan pembolehubah ahli awam dan kaedah ahli. Mentakrifkan pembolehubah atau kaedah ahli sebagai awam membenarkan mana-mana objek untuk mengakses pembolehubah atau kaedah.

Sebagai contoh, contoh kod berikut mentakrifkan kelas bernama Person, dan mentakrifkan pembolehubah ahli awam $name dan kaedah ahli awam sayHello() di dalamnya. Sama ada mengakses ahli ini di dalam atau di luar kelas tidak memerlukan sebarang sekatan:

class Person {
    public $name;
    
    public function sayHello() {
        echo 'Hello, my name is '.$this->name;
    }
}

$person = new Person();
$person->name = 'Tom';
$person->sayHello();
Salin selepas log masuk
  1. pengubah suai dilindungi

Pengubah suai dilindungi digunakan untuk menerangkan pembolehubah ahli dan kaedah ahli yang dilindungi. Mentakrifkan pembolehubah atau kaedah ahli sebagai dilindungi bermakna hanya subkelas dan kelas induk boleh mengakses ahli ini.

Sebagai contoh, contoh kod berikut mentakrifkan kelas bernama Animal dan mentakrifkan pembolehubah ahli yang dilindungi $name dan kaedah ahli dilindungi getName() di dalamnya. Hanya subkelas dan kelas induk kelas Haiwan boleh mengakses ahli ini:

class Animal {
    protected $name;
    
    protected function getName() {
        return $this->name;
    }
}

class Cat extends Animal {
    public function setName($name) {
        $this->name = $name;
    }
    
    public function sayHello() {
        echo 'Hello, I am '.$this->getName();
    }
}

$cat = new Cat();
$cat->setName('Tom');
$cat->sayHello();
Salin selepas log masuk
  1. pengubah suai peribadi

pengubah suai peribadi digunakan untuk menerangkan pembolehubah ahli persendirian dan kaedah ahli. Mentakrifkan pembolehubah atau kaedah ahli sebagai peribadi bermakna hanya mereka dalam kelas boleh mengakses ahli ini.

Sebagai contoh, contoh kod berikut mentakrifkan kelas bernama Person, dan mentakrifkan pembolehubah ahli persendirian $name dan kaedah ahli persendirian getName() di dalamnya. Ahli ini tidak boleh diakses secara langsung di luar kelas:

class Person {
    private $name;
    
    private function getName() {
        return $this->name;
    }
    
    public function sayHello() {
        echo 'Hello, my name is '.$this->getName();
    }
}

$person = new Person();
$person->name = 'Tom';  // 这里会报错
$person->sayHello();
Salin selepas log masuk
  1. pengubah suai akhir

Pengubah suai akhir digunakan untuk menyekat penggantian kelas dan kaedah. Mentakrifkan kelas atau kaedah sebagai muktamad bermakna ia tidak boleh ditindih dalam subkelas.

Sebagai contoh, contoh kod berikut mentakrifkan kelas bernama Animal dan mentakrifkan kaedah terakhir eat() di dalamnya. Memandangkan kaedah ditakrifkan sebagai muktamad, ia tidak boleh ditindih dalam subkelas Haiwan:

class Animal {
    final public function eat() {
        echo 'I am eating';
    }
}

class Cat extends Animal {
    public function eat() {  // 这里会报错
        echo 'I am not eating';
    }
}

$cat = new Cat();
$cat->eat();
Salin selepas log masuk
  1. pengubah suai abstrak

pengubah suai abstrak digunakan untuk mentakrifkan kelas abstrak dan kaedah abstrak. Kelas abstrak tidak boleh digunakan dan hanya boleh diwarisi oleh kelas lain. Kaedah abstrak hanya mempunyai definisi, tiada pelaksanaan khusus, dan mesti ditindih dalam subkelas.

Sebagai contoh, contoh kod berikut mentakrifkan kelas abstrak bernama Animal dan mentakrifkan kaedah abstrak eat() di dalamnya. Memandangkan kaedah eat() adalah abstrak, kaedah ini mesti dilaksanakan dalam subkelas Haiwan Cat:

abstract class Animal {
    abstract public function eat();
}

class Cat extends Animal {
    public function eat() {
        echo 'I am eating fish';
    }
}

$cat = new Cat();
$cat->eat();
Salin selepas log masuk

Melalui pengenalan di atas, kita dapat memahami dengan jelas kegunaan dan perbezaan pelbagai pengubah kawalan kebenaran dalam PHP. Apabila kami membangunkan projek, kami perlu memilih kaedah kawalan kebenaran yang sesuai berdasarkan keperluan khusus dan mematuhi peraturan yang berkaitan dengan ketat untuk memastikan keselamatan dan kestabilan operasi program.

Atas ialah kandungan terperinci Ringkasan pengubah kawalan kebenaran PHP: Gambaran keseluruhan penggunaan dan perbezaan pelbagai pengubah kebenaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan