Introduktion til konstruktør i PHP

Konstruktøren er PHP5 OOP (Object Oriented Programming) -koncept. Konstruktøren er knyttet til de klasser, vi erklærer i programmet. Konstruktøren kaldes automatisk, når klassens objekt bliver instantieret, og definitionen af ​​konstruktør går således som sådan, "En konstruktør er en speciel metode, der kaldes automatisk, når klassens objekt er instantieret". I dette emne skal vi lære om konstruktører i PHP.

Syntaks

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

I ovenstående kodestykke begynder konstruktøren med en __ dobbelt understregning efterfulgt af nøgleordet konstruktion. En konstruktør uden __construct () eller i tilfælde af at navnet på klassen ændres, er den definerede metode blot en metode og ikke en konstruktør. Derfor er det vigtigt at definere konstruktøren i en klasse som defineret i syntaks.

Typer af konstruktør

Her er nogle af de typer konstruktører med deres output angivet nedenfor

1) Foruddefineret konstruktør

For at afklare den foruddefinerede konstruktør, lad os se på et eksempel givet nedenfor

Eksempel på foruddefineret konstruktør

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

Produktion:

I ovenstående eksempel

Vi har en klasse Person, der har to metoder, hvor en person CanSpeak () -metode og konstruktormetoden __construct (). Dernæst har vi instantieret klassen som et objekt $ p. Ved hjælp af $ p har vi kaldet den normale metode. Så snart objektet er oprettet kaldes konstruktormetoden, og udsagnet inde i metoden udføres, ligesom yderligere CanSpeak () -metoden, som er en normal metode, og ikke en konstruktormetode kaldes ved hjælp af det samme objekt $ p og udsagnet indeni denne metode udføres. Da konstruktøren defineret ovenfor ikke har nogen argumenter, vil vi også kalde det en nul-argument konstruktør eller foruddefineret konstruktør.

2) Parameteriseret konstruktør

En konstruktør kan være med eller uden argumenter. Konstruktøren med argumenter kaldes den parametriserede konstruktør, og konstruktøren uden argumenter kaldes nul-argument konstruktøren. Lad os se på et eksempel.

Eksempel på parameteriseret konstruktør

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

Produktion:

Hvordan fungerer konstruktør?

Lad os se på baseklasse-konstruktøren og den afledte klasse, der udvider baseklassen ved hjælp af det udvidede nøgleord, der har sin egen konstruktør til at udføre, og den overordnede konstruktør til at udføre også. Indtil nu lærte vi kun om konstruktøren erklæret i en klasse. Lad os tilføje mere viden til konstruktøren her. Med følgende eksempel har baseklassen Person en konstruktør, nu kaldes denne konstruktør af den afledte klasse eller underklassen ved hjælp af overordnet nøgleord og kan således få adgang til baseklassen Personens konstruktør.

Output flow -

Først kaldes Person-konstruktøren, derefter kaldes Kundekonstruktøren, som internt igen kalder Person-konstruktøren og derefter sin egen kundekonstruktør og derefter medarbejderklassen, der udvider Person-klassen, så kaldes Person-konstruktøren igen.

Kode

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

Produktion:

I eksemplet nedenfor har vi vist, hvordan den indstillede metode og get-metoden fungerer. Brug af indkapslingskonceptet i OOP. Oprindeligt deklareres programmet med en konstruktør, en sætnavn-metode og en get_name-metode. Bemærk, at konstruktøren er en parameteriseret konstruktør, der bestemt kaldes, når klassen er instantieret, og at den første output derfor er John Doe, der oprettes derefter et objekt fra klassen og kaldes metodenavn og get_navn, der udskriver output som 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();
?>

Produktion:

Adgangsspecifikationen-

Der er tre adgangsspecifikationer i PHP

  • Offentlig
  • Beskyttet
  • Privat

Offentligt: Medlemmer af klassen, der er erklæret som offentlige, er tilgængelige overalt.

Beskyttet: Medlemmer af klassen, der er erklæret som beskyttet, er kun tilgængelige inden for baseklassen og den afledte klasse, der udvider baseklassen.

Privat: Medlemmer af klassen, der er erklæret som private, er tilgængelige med den klasse, der definerer den.

Desuden kaldes de deklarerede variabler datamedlemmer eller egenskaber, og de deklarerede funktioner kaldes datametoder. I nedenstående eksempel har vi Base Class erklæret som Person, der har følgende egenskaber sammen med adgangsspecifikationerne offentlige navn, beskyttet e-mail og privat mobil. Nu er klassen instantieret med et objekt $ p og disse tre egenskaber, som der er adgang til fra objektet. hvilke output er en fejl, hvorfor fordi den beskyttede egenskab siger, at beskyttede kun er tilgængelige inden for baseklassen og den afledte klasse, der udvider baseklassen?

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

Produktion:

Konklusion

Håber denne artikel finder dig, hvad du har søgt efter. Artiklen har forskellige eksempler, du kan lære. Jo mere du sætter eksemplerne i praksis, desto lettere bliver det at forstå.

Anbefalede artikler

Dette er en guide til Constructor i PHP. Her har vi diskuteret typer af konstruktør og hvordan fungerer konstruktøren i PHP. Du kan også se på den følgende artikel for at lære mere -

  1. Hvad er PHP?
  2. PHP-strengfunktioner
  3. Python-samlinger
  4. Layout i Java

Kategori: