Sissejuhatus PHP konstruktorisse
Konstruktor on PHP5 OOP (Object Oriented Programming) kontseptsioon. Ehitaja on seotud klassidega, mille kuulutame programmis. Ehitajat kutsutakse klassi objekti kiirendamisel automaatselt, seega on konstruktori määratlus järgmine: “Ehitaja on eriline meetod, mida kutsutakse automaatselt, kui klassi objekt kiirendatakse”. Selles teemas õpime PHP-s konstruktorite kohta.
Süntaks
<_?phpClass Classname (
//constructor
function __construct() (
//statements
)
)
?>
Ülaltoodud kooditüki korral algab konstruktor __ topelt allakriipsuga, millele järgneb märksõna konstruktiga. Ilma __construct ()ta konstruktor või juhul, kui klassi nime muudetakse, on määratletud meetod lihtsalt meetod, mitte konstruktor. Seetõttu on oluline määratleda konstruktor klassis vastavalt süntaksile.
Ehitaja tüübid
Siin on mõned konstruktoritüübid, kelle väljund on toodud allpool
1) Eelmääratud konstruktor
Eelmääratud konstruktori kohta selgitamiseks vaatame allpool toodud näidet
Eelmääratud konstruktori näide
<_?phpclass 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();
?>
Väljund:
Ülaltoodud näites
Meil on klassi Isik, millel on kaks meetodit, kus inimene saab CanSpeak () meetodi ja konstrukatori meetodi __construct (). Järgmisena oleme klassi vahetanud objektina $ p. Kasutades dollarit p, oleme kutsunud tavameetodi. Niipea kui objekt on loodud, kutsutakse konstruktorimeetod ja teostatakse meetodi sees olev avaldus, samamoodi nimetatakse CanSpeak () meetodit, mis on tavaline meetod, mitte aga konstruktorimeetodit, kasutades sama objekti $ p ja avalduse sees see meetod täidetakse. Samuti, kuna ülalmääratletud konstruktoril pole ühtegi argumenti, nimetame seda nullargumentide konstruktoriks või eelnevalt määratletud konstruktoriks.
2) parameetriline konstruktor
Ehitaja võib olla argumentidega või ilma. Argumentidega konstruktorit nimetatakse parametriseeritud konstruktoriks ja argumentideta konstruktorit nullargumendiks. Vaatame näidet.
Parameetrilise konstrukatori näide
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();
Väljund:
Kuidas töötab konstruktor?
Heidame pilgu põhiklassi konstruktorile ja sellest tuletatud klassile, mis laiendab põhiklassi, kasutades laiendavat märksõna, millel on oma ehitatav ehitaja ja vanemkonstruktoril ka täitmine. Siiani saime teada ainult tunnis deklareeritud ehitaja kohta. Lisagem siin konstruktorile veel natuke teadmisi. Järgmise näite korral on põhiklassil Isik konstruktor, nüüd kutsutakse seda konstruktorit tuletatud klassi või alamklassi abil märksõnaga ja seega pääseb põhiklassi isiku konstruktorisse.
Väljundvoog -
Esiteks kutsutakse Isikkonstruktoriks, seejärel kutsutakse Tellijakonstruktoriks, kes kutsub sisemiselt uuesti Isikukonstruktoriks ja seejärel enda kliendikonstruktoriks ning viimasena töötajaklassi, mis laiendab Isikuklassi, seega kutsutakse uuesti Isikkonstruktoriks.
Kood
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();
Väljund:
Allpool toodud näites oleme näidanud, kuidas komplekti meetod ja hankeviis toimivad. Kapseldamise kontseptsiooni kasutamine OOP-is. Algselt deklareeritakse programm konstrukatori, meetodi set_name ja get_name meetodiga. Pange tähele, et konstruktoriks on parameetritega konstruktor, mida kindlasti kutsutakse siis, kui klass realiseeritakse, ja seetõttu on esimene väljund John Doe. Järgmine lõi klassi objekti ja nimetas meetodeid set_name ja get_name, mis trükivad väljundi Alice-na.
<_?phpclass 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();
?>
Väljund:
Juurdepääsu spetsifikaator-
PHP-s on kolm juurdepääsu täpsustajat
- Avalik
- Kaitstud
- Privaatne
Avalik: Avalikuks tunnistatud klassi liikmed on juurdepääsetavad kõikjal.
Kaitstud: kaitstuks tunnistatud klassi liikmetele on juurdepääs ainult põhiklassis ja tuletatud klassis, mis laiendab põhiklassi.
Privaatne: Privaatseks tunnistatud klassi liikmetele on juurdepääs klassiga, mis seda määratleb.
Samuti nimetatakse deklareeritud muutujaid andmeliikmeteks või omadusteks ja deklareeritud funktsioone nimetatakse andmemeetoditeks. Allpool toodud näites on põhiklass deklareeritud isikuks, millel on järgmised omadused koos juurdepääsu spetsifikaatoritega: avalik nimi, kaitstud e-post ja privaatne mobiil. Nüüd on klass kiirendatud objektiga $ p ja nende kolme omadusega, millele pääseb ligi objektist. millised väljundid on viga, miks, kuna kaitstud atribuut ütleb, et kaitstud on juurdepääsetavad ainult põhiklassis ja tuletatud klassis, mis laiendab põhiklassi?
<_?phpclass 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;
?>
Väljund:
Järeldus
Loodetavasti leiab see artikkel teile selle, mida olete otsinud. Artiklis on erinevad näited, mida saate õppida. Mida rohkem näiteid praktikasse viite, seda hõlpsamaks on sellest aru saada.
Soovitatavad artiklid
See on juhend PHP konstruktorile. Siin on arutatud konstruktoritüüpe ja kuidas töötab PHP konstruktor. Lisateabe saamiseks võite vaadata ka järgmist artiklit -
- Mis on PHP?
- PHP stringifunktsioonid
- Pythoni kogud
- Paigutus Java-s