Rumah >pembangunan bahagian belakang >tutorial php >Pembina dalam PHP
Pembina ialah konsep PHP5 OOP (Pengaturcaraan Berorientasikan Objek). Pembina dikaitkan dengan kelas yang kami isytiharkan dalam program. Pembina dipanggil secara automatik apabila objek kelas dijadikan instantiated, oleh itu takrifan pembina adalah seperti ini, "Pembina ialah kaedah khas yang dipanggil secara automatik apabila objek kelas itu instantiated". Dalam topik ini, kita akan belajar tentang pembina dalam PHP.
IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks
<?php Class Classname { //constructor function __construct() { //statements } } ?>
Dalam sekeping kod di atas, pembina bermula dengan __ garis bawah berganda diikuti dengan binaan kata kunci. Pembina tanpa __construct() atau sekiranya nama kelas ditukar maka kaedah yang ditakrifkan hanyalah kaedah dan bukan pembina. Oleh itu, adalah penting untuk mentakrifkan pembina dalam kelas mengikut sintaks yang ditakrifkan.
Berikut ialah beberapa jenis Pembina dengan outputnya diberikan di bawah
Untuk menjelaskan tentang Pembina Pra-takrif, Mari kita lihat contoh yang diberikan di bawah
Contoh Pembina Pra-takrif
Kod:
<?php class Person { function CanSpeak() { echo " Not a constructor method " . '<br>'; } function __construct() { echo " In the constructor method " . '<br>'; } } //Object of class calling the constructor internally $p = new Person(); // Object of class calling the normal method $p->CanSpeak(); ?>
Output:
Dalam contoh di atas
Kami mempunyai Orang kelas, yang mempunyai dua kaedah, di mana seseorang Kaedah CanSpeak() dan kaedah pembina __construct(). Seterusnya, kami telah menjadikan kelas sebagai objek $p. Menggunakan $p kita telah memanggil kaedah biasa. Sebaik sahaja objek dicipta kaedah pembina dipanggil dan pernyataan di dalam kaedah dilaksanakan, begitu juga kaedah CanSpeak() yang merupakan kaedah biasa dan bukan kaedah pembina dipanggil menggunakan objek yang sama $p dan pernyataan di dalamnya kaedah itu dilaksanakan. Selain itu, memandangkan pembina yang ditakrifkan di atas tidak mempunyai sebarang hujah, kami akan memanggilnya sebagai pembina hujah sifar atau pembina pratakrif.
Pembina boleh dengan atau tanpa hujah. Pembina dengan hujah dipanggil pembina parameter dan pembina tanpa hujah dipanggil pembina hujah sifar. Mari kita lihat contoh.
Contoh Pembina Berparameter
Kod:
class Person { private $first; private $email; private $mobile; public function __construct($name, $email, $mobile) { echo "Initialising the object...<br/>"; $this->name = $name; $this->email = $email; $this->mobile = $mobile; } public function showProfile() { echo "My name is: " . $this->name. " " . $this->email. " " . $this->mobile; } } $john = new Person("John","[email protected]", "9187986786"); $john->showProfile();
Output:
Mari kita lihat pembina kelas asas dan kelas terbitan yang memanjangkan kelas asas menggunakan kata kunci extends yang mempunyai pembina sendiri untuk dilaksanakan dan pembina induk untuk dilaksanakan juga. Sehingga kini kami hanya belajar tentang pembina yang diisytiharkan dalam kelas. Marilah kita menambah lebih banyak pengetahuan kepada pembina di sini. Dengan contoh berikut, orang kelas asas mempunyai pembina, kini pembina ini dipanggil oleh kelas terbitan atau Sub Kelas dengan menggunakan kata kunci induk dan dengan itu boleh mengakses pembina Orang Kelas Asas.
Pertama, pembina Orang dipanggil, kemudian pembina Pelanggan dipanggil yang secara dalaman memanggil semula pembina Orang dan kemudian pembina pelanggannya sendiri dan terakhir kelas Pekerja yang memanjangkan kelas Orang dengan itu pembina Orang dipanggil semula.
Kod:
class Person { function __construct() { echo "In Person constructor"."<br>"; } } class Customer extends Person { function __construct() { parent::__construct(); echo "In Customer constructor"."<br>"; } } class Employee extends Person { // inherits Person’s constructor } // In Person constructor $p = new Person(); // In Person constructor // In Customer constructor $c = new Customer(); // In Employee constructor $e = new Employee();
Output:
Dalam contoh di bawah kami telah menunjukkan cara kaedah set dan kaedah get berfungsi. Menggunakan konsep enkapsulasi dalam OOP. Pada mulanya, program ini diisytiharkan dengan pembina, kaedah set_name dan kaedah get_name. Ambil perhatian bahawa pembina ialah pembina berparameter yang pasti dipanggil apabila kelas dijadikan instantiated dan oleh itu output pertama ialah John Doe seterusnya mencipta objek kelas dan memanggil kaedah set_name dan get_name yang mencetak output sebagai Alice.
Kod:
<?php class Person { public $name; function __construct($name) { echo $this->name = $name; } function set_name($name) { $this->name = $name; } function get_name() { echo $this->name; } } // In Person constructor $p = new Person('John Doe'); echo "\n"; $p->set_name('Alice'); $p->get_name(); ?>
Output:
Terdapat tiga penentu akses dalam PHP
Awam: Ahli kelas yang diisytiharkan sebagai awam boleh diakses di mana-mana sahaja.
Protected: Members of the class declared as protected are accessible only within the base class and the derived class which extends the base class.
Private: Members of the class declared as private are accessible with the class that defines it.
Also, the variables declared are called data members or properties and the functions declared are called as data methods. In the below example we have Base Class declared as Person which has the following properties along with the access specifiers public name, protected email and private mobile. Now the class is instantiated with an object $p and these three properties which are accessed from the object. which outputs are an error, why because, the protected property says that protected are accessible only within the base class and the derived class which extends the base class?
Code:
<?php class Person { public $name=; protected $email; private $mobile; function __construct() { print "In Person constructor"; } } // In Person constructor $p = new Person(); echo $p->name; echo $p->email; echo $p->mobile; ?>
Output:
Hope this article finds you what you have been searching for. The article has different examples for you to learn. The more you put the examples in practice the easier it will become to grasp.
Atas ialah kandungan terperinci Pembina dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!