[[oktatas:programozás:php:php oop|< PHP OOP]] ====== PHP OOP konstruktor ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2020, 2022 * [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Osztály konstruktor ===== A konstruktor egy speciális metódus, amely egy objektum példányosítása során automatikusan meghívódik, akkor is ha azt nem definiáltuk. A PHP 5. verziótól támogatott. Ha definiáljuk a konstruktort, akkor bemenő paramétereket is megadhatunk neki, amelyek a tulajdonságoknak kezdőértékként szolgálhatnak. A konstruktor szintaktikája: void __construct ([ mixed $args [, $... ]] ) Egy osztályban egy kocsi tulajdonságait tároljuk, rendszám, szín és ár. A konstruktor segítségével kezdőértéket adunk a tulajdonságoknak. rendszam = $rendszam; $this->szin = $szin; $this->ar = $ar; } } ?> A következő példában egy metódust is deklarálunk, amellyel kiíratható az objektum tulajdonságainak aktuális értéke. rendszam = $rendszam; $this->szin = $szin; $this->ar = $ar; } public function mutatReszletek() { print "{$this->rendszam} | {$this->szin} | {$this->ar} Ft"; } } ?> ===== Konstruktor neve ===== A konstruktor neve lehet az osztály neve is, de névteres osztályokban nem működik az 5.3.3-tól: nev = $nev; } } ===== Konstruktor névtérben ===== Osztály névtérben: ===== Destruktor ===== Destruktor szintaxisa: void __destruct ( void ) name = "MyDestructableClass"; } function __destruct() { print "Destroying " . $this->name . "\n"; } } $obj = new MyDestructableClass(); ?> ===== Nemlétező konstruktor ===== nev = $nev; } } class Dolgozo extends Szemely { } $mari = new Dolgozo("Ari Mária"); echo $mari->nev; A Szemely osztály konstruktora kerül meghívásra.