Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Contoh fungsi objek dan kelas PHP

Contoh fungsi objek dan kelas PHP

王林
王林asal
2023-06-16 09:51:131036semak imbas

PHP ialah bahasa pengaturcaraan berorientasikan objek yang menyokong konsep objek dan kelas. Dalam PHP, objek ialah contoh kelas, yang boleh menyimpan data dan fungsi, yang dipanggil kaedah. Dengan menggunakan fungsi objek dan kelas PHP, kami boleh mengatur kod dengan mudah dan meningkatkan kebolehgunaan semula kod.

Dalam artikel ini, kami akan memperkenalkan contoh tentang fungsi objek dan kelas PHP serta fungsinya.

  1. Pembina (__construct)

Pembina ialah fungsi yang dipanggil secara automatik semasa mencipta objek. Ia digunakan untuk memulakan sifat objek dan melaksanakan operasi persediaan yang diperlukan. Nama pembina mestilah __construct, dan hanya boleh ada satu dalam kelas. Berikut ialah contoh pembina yang digunakan untuk memulakan nama pengguna dan kata laluan:

class User {
    public $username;
    public $password;

    function __construct($username, $password) {
        $this->username = $username;
        $this->password = $password;
    }
}

$user = new User('john', 'password');

Dalam kod di atas, apabila kami mencipta objek Pengguna baharu, __construct akan dipanggil secara automatik dan memulakan sifatnya.

  1. Destructor (__destruct)

Destructor ialah fungsi yang dipanggil secara automatik apabila objek dimusnahkan. Ia digunakan untuk membersihkan sumber objek dan melakukan operasi pembersihan yang diperlukan. Nama pemusnah mestilah __destruct, dan hanya boleh ada satu dalam kelas. Berikut ialah contoh pemusnah yang digunakan untuk membersihkan sumber:

class Logger {
    private $file;

    function __construct($name) {
        $this->file = fopen($name, 'a');
    }

    function write($message) {
        fwrite($this->file, $message);
    }

    function __destruct() {
        fclose($this->file);
    }
}

$logger = new Logger('log.txt');
$logger->write('This is a log message.');

Dalam kod di atas, apabila kami mencipta objek Logger baharu, __construct akan secara automatik dipanggil dan membuka fail untuk mesej log . Apabila objek dimusnahkan, __destruct akan memanggil dan menutup fail secara automatik.

  1. Fungsi aksesori (getters dan setter)

Fungsi aksesori, juga dikenali sebagai getter dan setter, ialah fungsi yang digunakan untuk mengakses sifat sesuatu objek. Getter digunakan untuk mendapatkan nilai atribut, dan setter digunakan untuk menetapkan nilai atribut. Nama-nama fungsi ini mesti bermula dengan get atau set, diikuti dengan nama harta dengan huruf pertama harta itu dengan huruf besar. Berikut ialah contoh fungsi pengakses untuk mendapatkan dan menetapkan umur pengguna:

class User {
    private $age;

    function setAge($age) {
        $this->age = $age;
    }

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

$user = new User();
$user->setAge(30);
echo $user->getAge(); // 输出30

Dalam kod di atas, kami menetapkan harta $age kelas Pengguna sebagai harta peribadi dan mencipta dua fungsi pengakses untuk mengaksesnya . Apabila kami menetapkan umur pengguna menggunakan fungsi setAge, ia menyimpan nilai dalam harta $age. Dan apabila kita menggunakan fungsi getAge untuk mendapatkan umur pengguna, ia akan mengembalikan nilai atribut $age.

  1. Fungsi statik (statik)

Fungsi statik ialah fungsi yang ditakrifkan pada peringkat kelas dan ia boleh dipanggil terus dari kelas. Kata kunci statik mesti digunakan sebelum nama fungsi statik. Fungsi statik tidak boleh mengakses sifat objek kerana ia tidak berada dalam konteks objek. Berikut ialah contoh fungsi statik yang digunakan untuk mengira jumlah dua nombor:

class Calculator {
    public static function add($a, $b) {
        return $a + $b;
    }
}

echo Calculator::add(2, 3); // 输出5

Dalam kod di atas, kami mentakrifkan fungsi statik yang dipanggil tambah, yang digunakan untuk mengira jumlah dua nombor . Kita boleh memanggil fungsi ini melalui nama kelas tanpa mencipta objek.

5. Fungsi pewarisan (lanjutan)

Pewarisan ialah teknik pengaturcaraan yang membenarkan satu kelas mewarisi sifat dan kaedah kelas yang lain. Subkelas mewarisi kaedah dan sifat kelas induk, dan boleh menambah kaedah dan sifat mereka sendiri. Berikut ialah contoh mewarisi kelas Orang dan menambah Pelajar subkelas:

class Person {
    protected $name;

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

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

class Student extends Person {
    private $id;

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

    function getId() {
        return $this->id;
    }
}

$student = new Student('john', 123);
echo $student->getName(); // 输出john
echo $student->getId(); // 输出123

Dalam kod di atas, kami mentakrifkan kelas asas bernama Person, yang mengandungi pembina dan fungsi getName. Kami juga mentakrifkan subkelas yang dipanggil Pelajar, yang mewarisi sifat dan kaedah kelas Orang dan mengandungi sifat dan kaedahnya sendiri. Apabila mencipta objek Pelajar, kami menggunakan parent::__construct untuk memanggil pembina kelas asas.

Ringkasan

Fungsi objek dan kelas PHP boleh membantu kami mengatur dan mengurus kod dengan lebih baik. Pembina digunakan untuk memulakan sifat objek, dan pemusnah digunakan untuk membersihkan sumber objek. Fungsi pengakses digunakan untuk mengakses sifat objek, fungsi statik digunakan untuk menentukan fungsi pada peringkat kelas, dan fungsi warisan digunakan untuk subkelas untuk mewarisi sifat dan kaedah kelas induk. Menguasai penggunaan fungsi ini boleh meningkatkan kecekapan pengaturcaraan kami dan kebolehgunaan semula kod.

Atas ialah kandungan terperinci Contoh fungsi objek dan kelas 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