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

Конструктор - это концепция PHP5 ООП (объектно-ориентированного программирования). Конструктор связан с классами, которые мы объявляем в программе. Конструктор вызывается автоматически при создании экземпляра объекта класса, поэтому определение конструктора выглядит следующим образом: «Конструктор - это специальный метод, который вызывается автоматически при создании экземпляра объекта класса». В этой теме мы собираемся узнать о конструкторах в PHP.

Синтаксис

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

В приведенном выше фрагменте кода конструктор начинается с двойного подчеркивания __, за которым следует ключевое слово construct. Конструктор без __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, который имеет два метода, где метод 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 имеет конструктор, теперь этот конструктор вызывается производным классом или подклассом с использованием ключевого слова parent и, таким образом, может получить доступ к конструктору базового класса Person.

Выходной поток -

Сначала вызывается конструктор Person, затем вызывается конструктор Customer, который снова вызывает внутренний конструктор Person, а затем его собственный конструктор Customer и, наконец, класс 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();

Выход:

В приведенном ниже примере мы показали, как работают метод set и метод get. Использование концепции инкапсуляции в ООП. Первоначально программа объявляется с помощью конструктора, метода set_name и метода get_name. Обратите внимание, что конструктор является параметризованным конструктором, который определенно вызывается при создании экземпляра класса, и поэтому первым выводом является то, что Джон Доу создал объект класса и вызвал методы set_name и get_name, которые выводят выходные данные как Алиса.

<_?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 есть три спецификатора доступа

  • общественного
  • защищенный
  • Частный

Public: члены класса, объявленные как public, доступны везде.

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

Private: члены класса, объявленного как private, доступны с классом, который его определяет.

Кроме того, объявленные переменные называются членами или свойствами данных, а объявленные функции - методами данных. В приведенном ниже примере у нас есть базовый класс, объявленный как Person, который имеет следующие свойства, а также спецификаторы доступа: публичное имя, защищенная электронная почта и частный мобильный телефон. Теперь класс создается с помощью объекта $ 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