Вступ до конструктора в PHP

Конструктор - концепція PHP5 OOP (Об'єктно-орієнтоване програмування). Конструктор асоціюється з класами, які ми оголошуємо в програмі. Конструктор викликається автоматично, коли об'єкт класу інстанціюється, таким чином, визначення конструктора йде так: "Конструктор - це спеціальний метод, який викликається автоматично, коли об'єкт класу інстанціюється". У цій темі ми збираємося дізнатись про конструктори в PHP.

Синтаксис

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

У вищевказаному фрагменті коду конструктор починається з __ подвійного підкреслення, за яким іде ключова конструкція. Конструктор без __construct () або у випадку, якщо ім'я класу буде змінено, визначений метод - це просто метод, а не конструктор. Таким чином, важливо визначити конструктор у класі відповідно до визначеного синтаксису.

Типи конструктора

Ось декілька типів Конструктора з їх результатами, наведеними нижче

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

Вихід:

Як працює конструктор?

Давайте подивимось на конструктор базового класу та похідний клас, який розширює базовий клас, використовуючи ключове слово extens, яке має власний конструктор для виконання, а також батьківський конструктор. До цього часу ми дізналися лише про конструктор, оголошений у класі. Додамо тут ще трохи знань до конструктора. У наступному прикладі Особа базового класу має конструктор, тепер цей конструктор викликається похідним класом або Підкласом за допомогою батьківського ключового слова і, таким чином, може отримати доступ до конструктора Особи базового класу.

Вихідний потік -

Спочатку викликається конструктор 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. Використання концепції інкапсуляції в ООП. Спочатку програма оголошується конструктором, методом set_name та методом get_name. Зауважте, що конструктор - це параметризований конструктор, який, безумовно, викликається, коли клас інстанціюється, і тому перший вихід - Джон Доу, далі створив об'єкт класу та назвав методи 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;
?>

Вихід:

Висновок

Сподіваюся, ця стаття знайде вам те, що ви шукали. У статті є різні приклади для навчання. Чим більше ви будете застосовувати приклади на практиці, тим легше стане зрозуміти.

Рекомендовані статті

Це посібник для конструктора PHP. Тут ми обговорили типи конструктора та як працює конструктор в PHP. Ви також можете переглянути наступну статтю, щоб дізнатися більше -

  1. Що таке PHP?
  2. Функції струнних PHP
  3. Колекції Python
  4. Макет на Java