Úvod do konstruktoru v PHP

Konstruktor je koncept PHP5 OOP (Object Oriented Programming). Konstruktor je spojen s třídami, které deklarujeme v programu. Konstruktor je volán automaticky, když je objekt třídy instancován, takže definice konstruktoru vypadá takto: „Konstruktor je speciální metoda, která je volána automaticky, když je objekt třídy instancován“. V tomto tématu se budeme učit o konstruktorech v PHP.

Syntax

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

Ve výše uvedené části kódu začíná konstruktor __ dvojitým podtržítkem následovaným konstrukcí klíčového slova. Konstruktor bez __construct () nebo v případě, že se změní název třídy, pak je definovaná metoda pouze metoda a ne konstruktor. Proto je důležité definovat konstruktor ve třídě podle definované syntaxe.

Typy konstruktorů

Zde jsou některé typy konstruktorů s jejich výstupy uvedenými níže

1) Předdefinovaný konstruktor

Abychom objasnili předdefinovaný konstruktor, podívejme se na níže uvedený příklad

Příklad předdefinovaného konstruktoru

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

Výstup:

Ve výše uvedeném příkladu

Máme třídu Osoba, která má dvě metody, kde metodu osoba CanSpeak () a metodu konstruktoru __construct (). Dále jsme vytvořili instanci třídy jako objekt $ p. Pomocí $ p jsme nazvali normální metodu. Jakmile je objekt vytvořen, je volána metoda konstruktoru a je proveden příkaz uvnitř této metody, podobně je dále volána metoda CanSpeak (), která je normální metodou, nikoli metoda konstruktoru, pomocí stejného objektu $ pa a příkazu uvnitř tato metoda je spuštěna. Jelikož výše definovaný konstruktor nemá žádné argumenty, budeme jej nazývat konstruktérem s nulovým argumentem nebo předdefinovaným konstruktorem.

2) Parametrizovaný konstruktor

Konstruktor může být s argumenty nebo bez argumentů. Konstruktor s argumenty se nazývá parametrizovaný konstruktor a konstruktor bez argumentů se nazývá konstruktor s nulovými argumenty. Podívejme se na příklad.

Příklad parametrizovaného konstruktoru

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

Výstup:

Jak Constructor funguje?

Podívejme se na konstruktor základní třídy a odvozenou třídu, která rozšiřuje základní třídu pomocí klíčového slova rozšíření, které má svůj vlastní konstruktor, který má být proveden, a nadřazeného konstruktoru, který také provádí. Doposud jsme se dozvěděli jen o konstruktérovi deklarovaném ve třídě. Pojďme k konstruktoru přidat další znalosti. V následujícím příkladu má osoba základní třídy konstruktor, nyní je tento konstruktor volán odvozenou třídou nebo podtřídou pomocí nadřazeného klíčového slova a může tak přistupovat k konstruktoru základní třídy.

Výstupní tok -

Nejprve se zavolá konstruktér osoby, poté se zavolá konstruktér zákazníka, který interně znovu volá konstruktor osoby a poté jeho vlastní konstruktér zákazníka a poslední třídu Zaměstnanec, která rozšiřuje třídu Person, čímž se opět vyvolá konstruktor osoby.

Kód

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

Výstup:

V níže uvedeném příkladu jsme ukázali, jak funguje metoda set a metoda get. Použití konceptu zapouzdření v OOP. Program je zpočátku deklarován konstruktorem, metodou set_name a get_name. Všimněte si, že konstruktor je parametrizovaný konstruktor, který se určitě volá, když je instance instancí třídy, a proto prvním výstupem je John Doe, dále vytvořil objekt třídy a nazval metody set_name a get_name, které tisknou výstup 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();
?>

Výstup:

Specifikátor přístupu-

V PHP jsou tři specifikátory přístupu

  • Veřejnost
  • Chráněný
  • Soukromé

Veřejné: Členové třídy prohlášené za veřejné jsou přístupní všude.

Chráněno: Členové třídy prohlášené za chráněné jsou přístupní pouze v rámci základní třídy a odvozené třídy, která rozšiřuje základní třídu.

Soukromé: Členové třídy prohlášené za soukromé jsou přístupné s třídou, která ji definuje.

Deklarované proměnné se také nazývají datové členy nebo vlastnosti a deklarované funkce se nazývají datové metody. V níže uvedeném příkladu je základní třída deklarována jako osoba, která má následující vlastnosti spolu s veřejným jménem specifikujícím přístup, chráněným e-mailem a soukromým mobilem. Nyní je třída instance instancí s objektem $ p a těmito třemi vlastnostmi, které jsou přístupné z objektu. které výstupy jsou chybou, proč protože chráněná vlastnost říká, že chráněné jsou přístupné pouze v rámci základní třídy a odvozené třídy, která rozšiřuje základní třídu?

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

Výstup:

Závěr

Doufám, že tento článek najde, co jste hledali. Tento článek obsahuje různé příklady, které byste se měli naučit. Čím více uvedete příklady do praxe, tím snazší bude pochopení.

Doporučené články

Toto je průvodce programem Constructor v PHP. Zde jsme diskutovali Typy konstruktorů a Jak funguje konstruktor v PHP. Další informace naleznete také v následujícím článku -

  1. Co je PHP?
  2. Funkce PHP String
  3. Pythonovy sbírky
  4. Rozložení v Javě

Kategorie: