Uvod u Konstruktor u PHP-u
Konstruktor je PHP5 OOP (objektno orijentirano programiranje). Konstruktor je povezan s klasama koje izjavljujemo u programu. Konstruktor se poziva automatski kada se predmet klase instancira, pa definicija konstruktora ide ovako: "Konstruktor je posebna metoda koja se automatski poziva kada se predmet klase primjenjuje". U ovoj ćemo temi upoznati konstruktore u PHP-u.
Sintaksa
<_?phpClass Classname (
//constructor
function __construct() (
//statements
)
)
?>
U gornjem dijelu koda, konstruktor započinje s __ dvostrukim podvlačenjem, nakon čega slijedi konstrukcija ključne riječi. Konstruktor bez __construct () ili u slučaju promjene imena klase, definirana metoda je samo metoda, a ne konstruktor. Stoga je važno definirati konstruktor u klasi u skladu s definiranom sintaksom.
Vrste konstruktora
Ovdje su neke od vrsta konstruktora s njihovim izlazima danim u nastavku
1) Unaprijed definirani konstruktor
Da bismo pojasnili unaprijed definirani konstruktor, pogledajmo primjer naveden u nastavku
Primjer unaprijed definiranog konstruktora
<_?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();
?>
Izlaz:
U gornjem primjeru
Imamo klasu Osoba koja ima dvije metode, gdje osoba može koristiti metodu CanSpeak () i konstruktorski metod __construct (). Zatim smo instancirali klasu kao objekt $ p. Koristeći $ p nazvali smo normalnu metodu. Čim se stvori objekt, poziva se metoda konstruktora i izvršava se izjava unutar metode, na isti način naziva se metoda CanSpeak () koja je normalna metoda, a ne konstruktivna metoda koristeći isti objekt $ p i izraz unutar ta metoda se izvršava. Također, budući da prethodno definirani konstruktor nema argumente, nazvat ćemo ga konstruktorom bez argumenata ili unaprijed definiranim konstruktorom.
2) Parameterizirani konstruktor
Konstruktor može biti sa ili bez argumenata. Konstruktor s argumentima naziva se parametrizirani konstruktor, a konstruktor bez argumenata naziva konstruktor nula argumenata. Pogledajmo primjer.
Primjer parametriranog konstruktora
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();
Izlaz:
Kako djeluje konstruktor?
Pogledajmo konstruktora osnovne klase i izvedenu klasu koja proširuje osnovnu klasu pomoću ključne riječi extens koja ima vlastiti konstruktor koji se izvršava i nadređenog konstruktora. Do sad smo saznali samo o konstruktoru koji je deklariran u razredu. Dodajmo ovdje još nešto znanja konstruktoru. Sljedećim primjerom, Osoba iz osnovne klase ima konstruktor, sada je ovaj konstruktor nazvan izvedenom razredom ili Podklasom pomoću nadređene ključne riječi i na taj način može pristupiti konstruktoru Osobe osnovne baze.
Izlazni protok -
Prvo se zove Person konstruktor, zatim se zove Customer konstruktor koji interno ponovo poziva Person konstruktor, a zatim svoj vlastiti konstruktor kupca i posljednji klasu Employee koja proširuje klasu Person, pa se Person konstruktor ponovo zove.
Kodirati
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();
Izlaz:
U primjeru u nastavku prikazali smo kako funkcionira postavljena metoda i metoda get. Korištenje koncepta enkapsulacije u OOP-u. U početku se program deklarira s konstruktorom, metodom set_name i metodom get_name. Imajte na umu da je konstruktor parametrizirani konstruktor koji se definitivno naziva kada je klasa instancirana, pa je prvi izlaz John Doe, a zatim stvorio objekt klase i nazvao metode set_name i get_name koji ispisuju izlaz kao Alice.
<_?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();
?>
Izlaz:
Specifikator pristupa-
U PHP-u postoje tri specifikacija pristupa
- Javnost
- zaštićen
- Privatna
Javno: Članovi klase koji su deklarirani kao javni dostupni su svuda.
Zaštićeno: Članovi klase proglašeni zaštićenima dostupni su samo unutar osnovne klase i izvedene klase koja proširuje osnovnu klasu.
Privatno: Članovi klase koji su deklarirani kao privatni dostupni su s razredom koji je definira.
Također, deklarirane varijable nazivaju se članovima podataka ili svojstvima, a deklarirane funkcije se nazivaju data podacima. U primjeru u nastavku imamo Baznu klasu koja je deklarirana kao Osoba koja ima sljedeća svojstva, zajedno s odrediteljima pristupa, javnim imenom, zaštićenom e-poštom i privatnim mobilnim telefonom. Sada je klasa instancirana s objektom $ p i ta tri svojstva kojima se pristupi od objekta. koji su izlazi pogreška, zašto, ako zaštićeni entitet kaže da su zaštićeni dostupni samo unutar osnovne klase i izvedene klase koja proširuje osnovnu klasu?
<_?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;
?>
Izlaz:
Zaključak
Nadam se da će vam ovaj članak pronaći ono što ste tražili. U članku imate različite primjere za učenje. Što više primjera primijenite u praksi, to ćete lakše shvatiti.
Preporučeni članci
Ovo je vodič za Constructor na PHP-u. Ovdje smo razgovarali o vrstama konstruktora i kako djeluje konstruktor u PHP-u. Možete pogledati i sljedeći članak da biste saznali više -
- Što je PHP?
- PHP string funkcije
- Zbirke Python
- Izgled u Javi