Введение в конструктор в PHP
Конструктор - это концепция PHP5 ООП (объектно-ориентированного программирования). Конструктор связан с классами, которые мы объявляем в программе. Конструктор вызывается автоматически при создании экземпляра объекта класса, поэтому определение конструктора выглядит следующим образом: «Конструктор - это специальный метод, который вызывается автоматически при создании экземпляра объекта класса». В этой теме мы собираемся узнать о конструкторах в PHP.
Синтаксис
<_?phpClass Classname (
//constructor
function __construct() (
//statements
)
)
?>
В приведенном выше фрагменте кода конструктор начинается с двойного подчеркивания __, за которым следует ключевое слово construct. Конструктор без __construct () или в случае, если имя класса изменено, тогда определенный метод является просто методом, а не конструктором. Таким образом, важно определить конструктор в классе согласно определенному синтаксису.
Типы конструктора
Вот некоторые из типов Конструктора с их выводом, данным ниже
1) Предопределенный конструктор
Чтобы уточнить про предопределенный конструктор, давайте посмотрим на пример, приведенный ниже
Пример предопределенного конструктора
<_?phpclass 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, которые выводят выходные данные как Алиса.
<_?phpclass 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 и этих трех свойств, к которым осуществляется доступ из объекта. какие выходы являются ошибкой, почему, так как защищенное свойство говорит, что защищенные доступны только внутри базового класса и производного класса, который расширяет базовый класс?
<_?phpclass 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. Вы также можете посмотреть следующую статью, чтобы узнать больше -
- Что такое PHP?
- Строковые функции PHP
- Коллекции Python
- Макет в Java