< PHP OOP

PHP OOP tagok láthatósága

Szerző: Sallai András

Copyright © Sallai András, 2020

CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

A láthatóság

Minden tulajdonságot és függvényt valamilyen láthatósági módosító kulcsszóval szokás létrehozni.

Ezek lehetnek:

public:

publikus tulajdonság és metódus. Hozzáférhető egy scriptben egy objektumpéldány létrehozás után is.

protected:

Védett tulajdonság és metódus. Csak a definiáló szülő osztályban vagy az örökölt osztályokban érhető el.

private:

Privát tulajdonság és metódus. Csak a definiáló osztályból férhetünk hozzá.

A public elérés

A következő példában van egy dolgozó osztályunk, egyetlen tulajdonsággal. Az elérése public, így az örökléssel létrehozott Mernok osztályban is elérhető.

<?php class Dolgozo { public $nev = 'Névtelen'; } class Mernok extends Dolgozo { } $janos = new Mernok(); echo $janos->nev . "\n"; $bela = new Dolgozo(); echo $bela->nev . "\n"; ?>

A janos és a $bela objektumból is.

A protected elérés

<?php class Dolgozo { protected $nev = 'Névtelen'; } class Mernok extends Dolgozo { public function kiir() { echo $this->nev . "\n"; } } $janos = new Mernok(); $janos->kiir(); //Hibás: // echo $janos->nev . "\n"; $bela = new Dolgozo(); // Hibás: // echo $bela->nev . "\n"; ?>

Protected elérés esetén, még elérhető az örökölt osztályból a nev tulajdonság.

A private elérés

<?php class Dolgozo { private $nev = 'Névtelen'; public function kiir() { echo $this->nev . "\n"; } } class Mernok extends Dolgozo { /* Hibás: public function kiir() { echo $this->nev . "\n"; }*/ } $janos = new Mernok(); $janos->kiir(); //Hibás: // echo $janos->nev . "\n"; $bela = new Dolgozo(); // Hibás: // echo $bela->nev . "\n"; $bela->kiir(); ?>