Uvod v Konstruktor v PHP

Konstruktor je koncept PHP5 OOP (objektno orientirano programiranje). Konstruktor je povezan z razredi, ki jih izjavimo v programu. Konstruktor se samodejno pokliče, ko je predmet razreda instanca, zato definicija konstruktorja poteka takole: "Konstruktor je posebna metoda, ki se samodejno pokliče, ko je predmet razreda instanciran". V tej temi bomo spoznali konstruktorje v PHP.

Sintaksa

<_?php
Class Classname (
//constructor
function __construct() (
//statements
)
)
?>

V zgornjem delu kode konstruktor začne z __ dvojnim podčrtajem, ki mu sledi ključna beseda konstrukt. Konstruktor brez __construct () ali v primeru, da se ime razreda spremeni, je definirana metoda samo metoda in ne konstruktor. Zato je pomembno, da konstruktor določimo v razredu glede na definirano skladnjo.

Vrste konstruktorjev

Tu je nekaj vrst Constructorja, katerih izhod je dan spodaj

1) Vnaprej določen konstruktor

Za pojasnitev vnaprej določenega konstruktorja si oglejmo spodnji primer

Primer vnaprej določenega konstruktorja

<_?php
class Person (
function CanSpeak() (
echo " Not a constructor method " . '
';
)
function __construct() (
echo " In the constructor method " . '
';
)
)
//Object of class calling the constructor internally
$p = new Person();
// Object of class calling the normal method
$p->CanSpeak();
?>

Izhod:

V zgornjem primeru

Imamo razred Person, ki ima dve metodi, kjer oseba CanSpeak () metoda in konstruktor metoda __construct (). Nato smo instancirali razred kot objekt $ p. Z uporabo $ p smo poimenovali normalno metodo. Takoj, ko se ustvari objekt, se prikliče metoda konstruktorja in izvede stavek znotraj metode, podobno se uporabi tudi metoda CanSpeak (), ki je običajna metoda in ne konstruktorjeva metoda, ki uporablja isti objekt $ p in stavek znotraj ta metoda se izvede. Ker konstruktor, ki je opredeljen zgoraj, nima nobenih argumentov, ga bomo imenovali konstruktor z nič argumenti ali vnaprej določen konstruktor.

2) Parametriziran konstruktor

Konstruktor je lahko z ali brez argumentov. Konstruktor z argumenti se imenuje parametrizirani konstruktor, konstruktor brez argumentov pa konstruktor z ničelnimi argumenti. Poglejmo primer.

Primer parametriziranega konstruktorja

class Person (
private $first;
private $email;
private $mobile;
public function __construct($name, $email, $mobile) (
echo "Initialising the object…
";
$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", " ", "9187986786");
$john->showProfile();

Izhod:

Kako deluje Constructor?

Oglejmo si konstruktor osnovnega razreda in izpeljani razred, ki podaljša osnovni razred z uporabo ključne besede extends, ki ima svoj konstruktor, ki ga je treba izvesti, in nadrejenega konstruktorja tudi za izvedbo. Do zdaj smo izvedeli le o konstruktorju, ki je prijavljen v razredu. Tu dodajmo še nekaj znanja konstruktorju. Z naslednjim primerom ima osnovni razred Person konstruktor, zdaj ga ta konstruktor imenuje izpeljani razred ali Podrazred z uporabo nadrejene ključne besede in s tem lahko dostopa do konstruktorja Osebnega osnovnega razreda.

Izhodni pretok -

Najprej se pokliče konstruktor Person, nato se prikliče konstruktor Customer, ki notranje pokliče znova konstruktor Person, nato pa lasten konstruktor za stranke in nazadnje razred Employee, ki razširi razred Person, zato se konstruktor Person ponovno pokliče.

Koda

class Person (
function __construct() (
echo "In Person constructor"."
";
)
)
class Customer extends Person (
function __construct() (
parent::__construct();
echo "In Customer constructor"."
";
)
)
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();

Izhod:

V spodnjem primeru smo pokazali, kako delujeta nastavljena metoda in metoda get. Uporaba koncepta enkapsulacije v OOP. Na začetku se program deklarira s konstruktorjem, metodo set_name in metodo get_name. Upoštevajte, da je konstruktor parametriziran konstruktor, ki ga zagotovo pokličemo, ko je razred instanciran, zato je prvi izhod John Doe, nato ustvaril predmet razreda in imenoval metode set_name in get_name, ki izpisujejo izhod kot Alice.

<_?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();
?>

Izhod:

Specifikacija dostopa-

V PHP so trije specifikatorji dostopa

  • Javno
  • Zaščiteno
  • Zasebno

Javno: Člani razreda, razglašeni za javne, so dostopni povsod.

Zaščiteno: Člani razreda, ki so razglašeni za zaščitene, so dostopni samo v osnovnem razredu in izpeljanem razredu, ki razširja osnovni razred.

Zasebno: Člani razreda, razglašeni za zasebnega, so dostopni s razredom, ki ga definira.

Deklarirane spremenljivke se imenujejo tudi člani podatkov ali lastnosti, deklarirane funkcije pa se imenujejo kot podatkovne metode. V spodnjem primeru imamo bazni razred deklariran kot oseba, ki ima naslednje lastnosti, skupaj s specifikacijami dostopa javnim imenom, zaščiteno e-pošto in zasebnim mobilnim telefonom. Zdaj je razred instanciran s predmetom $ p in temi tremi lastnostmi, do katerih dostopamo do objekta. kateri izhodi so napaka, zakaj, ker zaščitena lastnost pravi, da so zaščiteni dostopni le v osnovnem razredu in izpeljani razred, ki podaljša osnovni razred?

<_?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;
?>

Izhod:

Zaključek

Upam, da bo ta članek našel tisto, kar ste iskali. V članku so različni primeri, ki se jih morate naučiti. Bolj ko boste primere uporabili v praksi, lažje jih boste razumeli.

Priporočeni članki

To je vodnik za Constructor v PHP. Tu smo razpravljali o vrstah konstruktorja in kako deluje konstruktor v PHP. Če želite izvedeti več, si oglejte tudi naslednji članek -

  1. Kaj je PHP?
  2. Funkcije nizov PHP
  3. Zbirke Python
  4. Postavitev v Javi