Rumah >pembangunan bahagian belakang >tutorial php >Mendedahkan rahsia pengubah kawalan kebenaran PHP: Menguasai kemahiran penggunaan dalam aplikasi praktikal

Mendedahkan rahsia pengubah kawalan kebenaran PHP: Menguasai kemahiran penggunaan dalam aplikasi praktikal

WBOY
WBOYasal
2024-01-19 10:06:061351semak imbas

Mendedahkan rahsia pengubah kawalan kebenaran PHP: Menguasai kemahiran penggunaan dalam aplikasi praktikal

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web. Semasa membangunkan aplikasi web, kawalan kebenaran adalah bahagian penting Kawalan kebenaran boleh memastikan keselamatan data dan integriti fungsi aplikasi. PHP menyediakan banyak pengubah kawalan kebenaran, yang artikel ini akan membincangkan.

Pengenalan kepada pengubah kawalan kebenaran

Dalam PHP, terdapat tiga jenis utama pengubah kawalan kebenaran: awam, dilindungi dan peribadi.

Awam bermaksud akses awam, dan sifat serta kaedahnya boleh diakses di mana-mana sahaja di dalam dan di luar kelas.

dilindungi bermaksud akses yang dilindungi, dan sifat serta kaedahnya boleh diakses dalam kelas dan subkelas semasa.

peribadi bermaksud akses peribadi, sifat dan kaedahnya hanya boleh diakses dalam kelas semasa.

Selain tiga pengubah kawalan kebenaran di atas, terdapat juga muktamad dan statik.

akhir mewakili kelas akhir, dan sifat serta kaedahnya tidak boleh diwarisi.

statik bermaksud kelas statik sifat dan kaedahnya boleh diakses di mana-mana di dalam dan di luar kelas, dan boleh digunakan tanpa membuat kelas.

Prinsip melaksanakan kawalan kebenaran

Sifat dan kaedah dalam kelas mempunyai pengubah suai untuk mengehadkan keterlihatannya, dengan itu mencapai kawalan kebenaran.

Penghuraikan PHP akan menentukan kebenaran akses berdasarkan pengubah suai Jika sifat atau kaedah tidak mentakrifkan pengubah suai, ia lalai kepada awam.

Kemahiran penggunaan dalam aplikasi praktikal

Kini kami akan menguasai kemahiran penggunaan pengubah kawalan kebenaran melalui senario aplikasi sebenar.

  1. Menghalang atribut daripada diganggu

Dalam banyak aplikasi web, untuk memastikan integriti dan keselamatan data, kita perlu mengehadkan beberapa atribut untuk mengelakkannya daripada diganggu. Ini boleh dicapai menggunakan pengubah suai atribut peribadi.

Berikut ialah contoh:

class User {
    private $username;
    private $password;
    
    public function __construct($username, $password) {
        $this->username = $username;
        $this->password = $password;
    }
    
    public function getUsername() {
        return $this->username;
    }
    
    public function getPassword() {
        return $this->password;
    }
}

$user = new User('Tom', '123456');
$user->username = 'Jerry'; // 禁止修改
  1. Cegah kaedah daripada ditindih

Dalam sesetengah kes, kami berharap kaedah kelas tidak boleh ditindih oleh subkelasnya, yang boleh dicapai menggunakan pengubahsuai atribut akhir.

Berikut ialah contoh:

class Animal {
    final public function move() {
        echo 'Moving...';
    }
}
 
class Dog extends Animal {
    // 错误示例
    public function move() {
        echo 'Running...';
    }
}

$dog = new Dog();
$dog->move(); // 输出 Moving...
  1. Akses atribut yang dilindungi

Apabila anda perlu mengehadkan akses kepada atribut tertentu, anda boleh menggunakan pengubah suai atribut yang dilindungi.

Berikut ialah contoh:

class Person {
    protected $name;
    
    public function __construct($name) {
        $this->name = $name;
    }
}

class Student extends Person {
    public function getName() {
        // 错误示例
        return $this->name;
    }
}

$student = new Student('Tom');
echo $student->getName(); // 输出空白,无法访问父类属性
  1. Mencapai akses terkawal

Dalam aplikasi yang kompleks, kawalan akses yang lebih terperinci diperlukan untuk sifat atau kaedah tertentu Anda boleh menggunakan kaedah awam untuk mendapatkan atau menetapkan nilai hartanah. Ini membolehkan anda mengawal akses harta melalui kaedah awam.

Berikut ialah contoh:

class User {
    private $username;
    private $password;
    
    public function __construct($username, $password) {
        $this->username = $username;
        $this->password = $password;
    }
    
    public function setUsername($username) {
        // 禁止修改用户名
        if ($this->username === $username) {
            return false;
        }
        
        $this->username = $username;
        return true;
    }
    
    public function setPassword($password) {
        $this->password = $password;
    }
    
    public function getUsername() {
        return $this->username;
    }
    
    public function getPassword() {
        return $this->password;
    }
}

$user = new User('Tom', '123456');
$user->setUsername('Jerry'); // 禁止修改
$user->setPassword('654321');
echo $user->getUsername() . ':' . $user->getPassword(); // 输出 Tom:654321

Ringkasan

Dalam pembangunan PHP, kawalan kebenaran adalah bahagian yang sangat penting Melalui kawalan kebenaran, anda boleh mengawal skop akses, melindungi keselamatan data, dan meningkatkan kebolehpercayaan dan kestabilan aplikasi. . Artikel ini memperkenalkan pengubah kawalan kebenaran yang biasa digunakan dalam PHP, dan menerangkan serta menunjukkannya melalui senario aplikasi sebenar, saya harap ia akan membantu pembangun PHP.

Atas ialah kandungan terperinci Mendedahkan rahsia pengubah kawalan kebenaran PHP: Menguasai kemahiran penggunaan dalam aplikasi praktikal. 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