Bevezetés a PHP konstruktorjába

A kivitelező a PHP5 OOP (Object Oriented Programming) koncepció. A kivitelező társul azokhoz az osztályokhoz, amelyeket a programban deklarálunk. A konstruktor automatikusan meghívásra kerül, amikor az osztály objektuma megvilágosodik, tehát a konstruktor meghatározása így történik: „A konstruktor egy speciális módszer, amelyet automatikusan meghívunk, amikor az osztály tárgya pillanatnyilag megjelenik”. Ebben a témában megismerjük a PHP építőit.

Szintaxis

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

A fenti kódrészletben a konstruktor __ kettős aláhúzással kezdődik, amelyet a konstrukció kulcsszó követ. __Construct () nélküli konstruktor vagy abban az esetben, ha az osztály neve megváltozik, akkor a megadott módszer csak egy módszer, és nem konstruktor. Ezért fontos a konstruktort egy osztályban definiálni, a szintaxis szerint.

A konstruktor típusai

Íme néhány konstruktor típus, amelyek kimenete alább található

1) Előre meghatározott konstruktor

Az előre definiált konstruktor tisztázása érdekében nézzük meg az alább bemutatott példát

Példa az előre meghatározott konstruktorra

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

Kimenet:

A fenti példában

Van egy osztályú Személy, amelynek két módszere van, ahol egy személy CanSpeak () metódust és a konstruktor metódust __construct (). Ezután az osztályt objektumként példázzuk $ p-ként. A $ p használatával a normál módszert hívtuk. Amint az objektum létrehozásra kerül, meghívja a konstruktor metódust és végrehajtja a metóduson belüli utasításot, hasonlóképpen tovább hívják a CanSpeak () metódust, amely egy normál módszer, és nem a konstruktor módszert, ugyanazon objektum felhasználásával, $ p és a benne lévő utasítás segítségével. ez a módszer végrehajtódik. Továbbá, mivel a fent definiált konstruktornak nincs érve, akkor nulla argumentumú konstruktornak vagy előre definiált konstruktornak nevezzük.

2) Paraméterezett konstruktor

A kivitelező érveléssel vagy anélkül lehet. Az argumentumokkal rendelkező konstruktort paraméterezett konstruktornak, az argumentumok nélküli konstruktort nulla argumentumú konstruktornak nevezzük. Nézzünk meg egy példát.

Példa a paraméterezett konstruktorra

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

Kimenet:

Hogyan működik a konstruktor?

Vessen egy pillantást az alaposztály-kivitelezőre és a származtatott osztályra, amely az alaposztályt kibővíti az kiterjesztési kulcsszóval, amelynek saját kivitelezője van a végrehajtáshoz, és az alapszintű kivitelező is végrehajtja. Mostanáig csak az osztályban bejelentett építőkről tudtunk meg. Adjunk még néhány tudást az építőnek itt. A következő példával az alap osztályú személynek van konstruktora, most ezt a konstruktort a származtatott osztály vagy az alosztály hívja szülő kulcsszó használatával, és így hozzáférhet az alap osztály személy konstruktorához.

A kimeneti áramlás -

Először a Személy konstruktorot hívják, majd az Ügyfél kivitelezőt hívják, amely belsőleg újra felhívja a Személy kivitelezőt, majd a saját ügyfél kivitelezőjét, és utoljára a Munkavállalói osztályt, amely kiterjeszti a Személy osztályt, így a Személy konstruktor újra hívásra kerül.

Kód

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

Kimenet:

Az alábbi példában megmutattuk, hogyan működik a beállított módszer és a get módszer. A kapszulázási koncepció használata az OOP-ban. A programot kezdetben konstruktorral, set_name módszerrel és get_name metódussal deklarálják. Vegye figyelembe, hogy a konstruktor egy paraméteres konstruktor, amelyet határozottan meghívnak, amikor az osztály megvalósul, és ezért az első kimenet John Doe. Ezután létrehozta az osztály objektumát, és set_name és get_name módszereket hívott, amelyek Alice-ként nyomtatják a kimenetet.

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

Kimenet:

A hozzáférés-specifikátor-

A PHP-ben három hozzáférési meghatározó van

  • Nyilvános
  • Védett
  • Magán

Nyilvános: A nyilvánosságnak nyilvánított osztály tagjai mindenhol elérhetők.

Védett: A védettnek nyilvánított osztály tagjai csak az alaposztályon és a származtatott osztályon belül érhetők el, amely kiterjeszti az alaposztályt.

Magán: A magánnak nyilvánított osztály tagjai hozzáférhetők az azt meghatározó osztálytal.

Ugyancsak a deklarált változókat adat tagoknak vagy tulajdonságoknak nevezzük, a deklarált függvényeket pedig adat módszereknek. Az alábbi példában alapszintűnek nyilvánítottuk Személyt, amely a következő tulajdonságokkal rendelkezik, valamint a nyilvános név, a védett e-mail és a magánhálózat hozzáférési meghatározókkal. Most az osztályt egy objektummal $ p, és ezt a három tulajdonságot érjük el, amelyek az objektumból érhetők el. melyik kimenet hibás, miért, mert a védett tulajdonság szerint a védett csak az alaposztályon és a származtatott osztályon keresztül érhető el, amely kiterjeszti az alaposztályt?

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

Kimenet:

Következtetés

Remélem, ez a cikk megtalálja azt, amit keresett. A cikk különféle példákat tartalmaz az Ön számára. Minél többet tesz a példákra a gyakorlatban, annál könnyebben fogható meg.

Ajánlott cikkek

Ez egy útmutató a PHP konstruktorához. Itt megvitattuk a kivitelezők típusait és hogyan működik a kivitelező a PHP-ben. A következő cikkben további információkat is megnézhet -

  1. Mi a PHP?
  2. PHP karakterlánc funkciók
  3. Python gyűjtemények
  4. Elrendezés Java-ban

Kategória: