Hubungan antara enkapsulasi dan perlindungan data dalam PHP

WBOY
Lepaskan: 2023-10-12 13:30:01
asal
1278 orang telah melayarinya

. Artikel ini akan membincangkan hubungan antara enkapsulasi dan perlindungan data dalam PHP dan memberikan contoh kod khusus.

Hubungan antara enkapsulasi dan perlindungan data dalam PHP Enkapsulasi merujuk kepada merangkum data dan kaedah dalam kelas dan mengawal akses kepada ahli kelas dengan menggunakan mekanisme kawalan akses. PHP menyediakan tiga pengubah kawalan akses berbeza: awam, dilindungi dan peribadi. Antaranya, awam bermaksud awam dan boleh diakses di dalam dan di luar kelas yang dilindungi dan hanya boleh diakses di dalam kelas dan subkelas peribadi dan hanya boleh diakses di dalam kelas; Dengan menggunakan pengubah suai ini, enkapsulasi ahli kelas dan perlindungan data boleh dicapai.

Berikut ialah kod sampel khusus:

class Person {
    private $name;
    protected $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

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

    protected function getAge() {
        return $this->age;
    }

    public function displayInfo() {
        echo "Name: " . $this->name . ", Age: " . $this->age;
    }
}

class Student extends Person {
    private $grade;

    public function __construct($name, $age, $grade) {
        parent::__construct($name, $age);
        $this->grade = $grade;
    }

    public function getGrade() {
        return $this->grade;
    }

    public function displayInfo() {
        parent::displayInfo();
        echo ", Grade: " . $this->grade;
    }
}

$person = new Person("John Doe", 30);
echo $person->getName();  // 输出: John Doe

$student = new Student("Jane Smith", 18, "A");
echo $student->getName(); // 输出: Jane Smith
echo $student->getGrade(); // 输出: A
Salin selepas log masuk

Dalam kod di atas, kelas Orang mempunyai atribut peribadi $nama dan atribut yang dilindungi $umur. Sifat $name boleh diakses secara luaran melalui kaedah getName yang diubah suai awam. Melalui kaedah getAge yang dilindungi, harta $age boleh diakses di dalam kelas dan dalam subkelas. Dalam kelas Pelajar, selain mewarisi ahli kelas Orang, terdapat juga gred $harta persendirian. Sifat $grade boleh diakses secara luaran melalui kaedah getGrade yang diubah suai awam. Dalam kaedah displayInfo, sifat yang sepadan diakses melalui $this->name, $this->age dan $this->gred.

Melalui kod contoh di atas, kita dapat melihat bahawa enkapsulasi dan perlindungan data boleh melindungi ahli kelas dengan berkesan dan menghalang akses dan pengubahsuaian yang menyalahi undang-undang. Bagi ahli awam, akses luaran boleh dicapai melalui pengubahsuai awam. Untuk ahli yang digunakan secara dalaman, skop akses boleh dikawal melalui pengubah suai yang dilindungi. Bagi ahli yang hanya digunakan dalam kelas, perlindungan data lengkap boleh dicapai melalui pengubah suai peribadi.

Ringkasnya, pengkapsulan dan perlindungan data adalah konsep yang sangat penting dalam pengaturcaraan berorientasikan objek Melalui penggunaan pengubah kawalan akses yang munasabah, ahli kelas boleh dikapsulkan dan dilindungi data. Sebagai bahasa pengaturcaraan berorientasikan objek, PHP juga menyediakan sokongan dan mekanisme yang baik untuk mencapai pengkapsulan dan perlindungan data. Saya harap artikel ini akan membantu pembaca memahami hubungan antara enkapsulasi dan perlindungan data dalam PHP.

Atas ialah kandungan terperinci Hubungan antara enkapsulasi dan perlindungan data dalam PHP. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!