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

<_?php
Class 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

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

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.

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

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?

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

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 -

  1. Što je PHP?
  2. PHP string funkcije
  3. Zbirke Python
  4. Izgled u Javi

Kategorija: