Wprowadzenie do konstruktora w PHP

Konstruktorem jest koncepcja OOP PHP5 (Object Oriented Programming). Konstruktor jest powiązany z klasami, które deklarujemy w programie. Konstruktor jest wywoływany automatycznie, gdy instancja obiektu klasy jest tworzona, dlatego definicja konstruktora wygląda następująco: „Konstruktor to specjalna metoda, która jest wywoływana automatycznie, gdy instancja obiektu klasy jest tworzona”. W tym temacie poznamy konstruktory w PHP.

Składnia

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

W powyższym kodzie konstruktor rozpoczyna się podwójnym podkreśleniem __, po którym następuje słowo kluczowe konstrukcja. Konstruktor bez __construct () lub w przypadku zmiany nazwy klasy, wówczas zdefiniowana metoda jest tylko metodą, a nie konstruktorem. Dlatego ważne jest zdefiniowanie konstruktora w klasie zgodnie ze zdefiniowaną składnią.

Rodzaje konstruktorów

Oto niektóre typy Konstruktorów, których dane wyjściowe podano poniżej

1) Wstępnie zdefiniowany konstruktor

Aby wyjaśnić wstępnie zdefiniowany konstruktor, spójrzmy na przykład podany poniżej

Przykład wstępnie zdefiniowanego konstruktora

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

Wynik:

W powyższym przykładzie

Mamy klasę Person, która ma dwie metody, w których metoda CanSpeak () osoby oraz metoda konstruktora __construct (). Następnie utworzyliśmy instancję klasy jako obiekt $ p. Używając $ p, wywołaliśmy normalną metodę. Zaraz po utworzeniu obiektu wywoływana jest metoda konstruktora i wykonywana jest instrukcja wewnątrz metody, podobnie metoda CanSpeak (), która jest normalną metodą, a nie metoda konstruktora, jest wywoływana przy użyciu tego samego obiektu $ p i instrukcji wewnątrz ta metoda jest wykonywana. Ponadto, ponieważ konstruktor zdefiniowany powyżej nie ma żadnych argumentów, nazwiemy go konstruktorem zero-argumentowym lub predefiniowanym konstruktorem.

2) Sparametryzowany konstruktor

Konstruktor może być z argumentami lub bez. Konstruktor z argumentami nazywany jest konstruktorem sparametryzowanym, a konstruktor bez argumentów nazywany jest konstruktorem zero-argumentowym. Spójrzmy na przykład.

Przykład sparametryzowanego konstruktora

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

Wynik:

Jak działa Konstruktor?

Przyjrzyjmy się konstruktorowi klasy podstawowej i klasie pochodnej, która rozszerza klasę podstawową za pomocą słowa kluczowego extends, które ma własnego konstruktora do wykonania, a także konstruktora nadrzędnego do wykonania. Do tej pory dowiedzieliśmy się tylko o konstruktorze zadeklarowanym w klasie. Dodajmy tutaj trochę więcej wiedzy do konstruktora. W poniższym przykładzie klasa podstawowa Osoba ma konstruktor, teraz ten konstruktor jest wywoływany przez klasę pochodną lub Podklasę za pomocą słowa kluczowego nadrzędnego, dzięki czemu może uzyskać dostęp do konstruktora Osoby klasy podstawowej.

Przepływ wyjściowy -

Najpierw wywoływany jest konstruktor Person, następnie wywoływany jest konstruktor Customer, który ponownie wywołuje wewnętrznie konstruktor Person, a następnie własny konstruktor klienta, a na koniec klasa Employee, która rozszerza klasę Person, w ten sposób wywoływany jest konstruktor Person.

Kod

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

Wynik:

W poniższym przykładzie pokazaliśmy, jak działa metoda set i get. Korzystanie z koncepcji enkapsulacji w OOP. Początkowo program deklarowany jest za pomocą konstruktora, metody set_name i metody get_name. Zauważ, że konstruktor jest sparametryzowanym konstruktorem, który jest zdecydowanie wywoływany podczas tworzenia instancji klasy, a zatem pierwszym wyjściem jest John Doe, następnie utworzył obiekt klasy i nazwał metody set_name i get_name, które wypisują dane wyjściowe jako 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();
?>

Wynik:

Specyfikator dostępu

W PHP są trzy specyfikatory dostępu

  • Publiczny
  • Chroniony
  • Prywatny

Publiczny: członkowie klasy zadeklarowani jako publiczni są dostępni wszędzie.

Chroniony: Członkowie klasy zadeklarowanej jako chroniony są dostępni tylko w klasie podstawowej i klasie pochodnej, która rozszerza klasę podstawową.

Prywatne: członkowie klasy zadeklarowanej jako prywatni są dostępni w klasie, która ją definiuje.

Ponadto zadeklarowane zmienne są nazywane elementami danych lub właściwościami, a deklarowane funkcje są wywoływane jako metody danych. W poniższym przykładzie zadeklarowaliśmy klasę podstawową jako Osoba, która ma następujące właściwości wraz z publiczną nazwą specyfikatora dostępu, chronionym adresem e-mail i prywatną komórką. Teraz instancja klasy jest tworzona za pomocą obiektu $ p i tych trzech właściwości, które są dostępne z obiektu. które dane wyjściowe są błędem, dlaczego, ponieważ chroniona właściwość mówi, że chronione są dostępne tylko w klasie podstawowej i klasie pochodnej, która rozszerza klasę podstawową?

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

Wynik:

Wniosek

Mam nadzieję, że ten artykuł znajdzie to, czego szukałeś. Artykuł zawiera różne przykłady do nauczenia się. Im więcej przykładów zastosujesz w praktyce, tym łatwiej będzie je zrozumieć.

Polecane artykuły

To jest przewodnik po Konstruktorze w PHP. Omówiliśmy tutaj typy konstruktorów i jak działa konstruktor w PHP. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. Co to jest PHP?
  2. Funkcje ciągów PHP
  3. Kolekcje Python
  4. Układ w Javie