Въведение в Конструктора в PHP

Конструкторът е концепцията PHP5 OOP (обектно ориентирано програмиране). Конструкторът е свързан с класовете, които декларираме в програмата. Конструкторът се извиква автоматично, когато обектът от класа е инстанциран, като по този начин дефиницията на конструктора върви така: „Конструкторът е специален метод, който се извиква автоматично, когато обектът от класа е инстанциран“. В тази тема ще научим за конструкторите в PHP.

Синтаксис

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

В горното парче код конструкторът започва с __ двойно подчертаване, последвано от ключовата дума конструкт. Конструктор без __construct () или в случай, че името на класа е променено, определеният метод е просто метод, а не конструктор. Следователно е важно да се дефинира конструкторът в клас според дефинирания синтаксис.

Видове конструктор

Ето някои от видовете Constructor с техния изход, даден по-долу

1) Предварително определен конструктор

За да поясним за предварително дефинирания конструктор, Нека разгледаме пример, даден по-долу

Пример за предварително дефиниран конструктор

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

изход:

В горния пример

Имаме клас Person, който има два метода, където човек метод CanSpeak () и метод конструктор __construct (). На следващо място, ние създадохме клас като обект $ p. Използвайки $ p, ние нарекохме нормалния метод. Щом обектът е създаден, методът на конструктора се извиква и операторът вътре в метода се изпълнява, подобно на метода CanSpeak (), който е нормален метод, а не метод на конструктор, се извиква, използвайки същия обект $ p и израза вътре този метод се изпълнява. Също така, тъй като дефинираният по-горе конструктор няма аргументи, ние ще го наречем конструктор с нулев аргумент или предварително определен конструктор.

2) Параметризиран конструктор

Конструктор може да бъде със или без аргументи. Конструкторът с аргументи се нарича параметризиран конструктор, а конструкторът без аргументи се нарича конструктор с нулев аргумент. Нека да разгледаме един пример.

Пример за параметризиран конструктор

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

изход:

Как работи конструктор?

Нека разгледаме конструктора на базовия клас и извлечения клас, който разширява базовия клас, използвайки ключовата дума extends, която има свой конструктор за изпълнение и родителския конструктор, който да изпълни. До сега научихме само за конструктора, деклариран в клас. Нека добавим още малко знания към конструктора тук. Със следния пример, базовият клас Person има конструктор, сега този конструктор се извиква от производен клас или подклас чрез използване на ключова дума родител и по този начин може да получи достъп до конструктора на персонала на базовия клас.

Изходният поток -

Първо се извиква конструкторът Person, след това се нарича конструктор Customer, който вътрешно отново извиква конструктора Person, а след това свой собствен конструктор на клиенти и последен клас на Employee, който разширява класа Person, така че конструкторът Person се извиква отново.

код

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

изход:

В примера по-долу показахме как работи методът get и методът get. Използване на концепцията за капсулиране в OOP. Първоначално програмата се декларира с конструктор, метод set_name и метод get_name. Обърнете внимание, че конструкторът е параметризиран конструктор, който определено се извиква, когато класът е инстанциран и следователно първият изход е John Doe, след което създаде обект от класа и нарече методите set_name и get_name, които отпечатват изхода като 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();
?>

изход:

Спецификаторът на достъп-

В PHP има три спецификатора за достъп

  • обществен
  • Защитена
  • частен

Публично: Членовете на класа, обявен за публичен, са достъпни навсякъде.

Защитени: Членовете на класа, деклариран като защитен, са достъпни само в рамките на базовия клас и на извлечения клас, който разширява базовия клас.

Частно: Членовете на класа, обявен за частен, са достъпни с класа, който го определя.

Също така декларираните променливи се наричат ​​членове на данни или свойства, а декларираните функции се наричат ​​методи за данни. В примера по-долу имаме базов клас, деклариран като лице, който има следните свойства, заедно със спецификаторите за достъп обществено име, защитен имейл и частна мобилна. Сега класът се инстанцира с обект $ p и тези три свойства, които са достъпни от обекта. кои изходи са грешка, защо, защото, защитената собственост казва, че защитените са достъпни само в рамките на базовия клас, а производният клас, който разширява базовия клас?

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

изход:

заключение

Надявам се, че тази статия ще намери това, което търсите. В статията има различни примери, които можете да научите. Колкото повече ще приложите примерите на практика, толкова по-лесно ще се разбере.

Препоръчителни статии

Това е ръководство за Constructor в PHP. Тук сме обсъдили типовете конструктор и как работи конструкторът в PHP. Можете също да разгледате следната статия, за да научите повече -

  1. Какво е PHP?
  2. PHP струнни функции
  3. Python Collection
  4. Оформление в Java