A __get metódus

A __get metódus automatikusan meghívódik, amikor egy nem létező vagy nem elérhető objektumtulajdonság értékét próbáljuk elérni. Ez a mágikus metódus egy paramétert fogad - a kért tulajdonság nevét.

Szintaxis

phppublic function __get(string $name) {
  // implementáció
}

Példa

Hozzunk létre egy osztályt __get metódussal, amely visszaadja értékeket a nem létező tulajdonságokhoz:

php<?php
  class User {
    private $data = [
      'name' => 'John',
      'age' => 30
    ];
    
    public function __get($name) {
      if (array_key_exists($name, $this->data)) {
        return $this->data[$name];
      }
      return null;
    }
  }
  
  $user = new User();
  echo $user->name;
?>

A kód végrehajtásának eredménye:

php'John'

Példa

A __get metódus használható dinamikus tulajdonságok implementálására:

php<?php
  class DynamicProperties {
    public function __get($name) {
      return "Dinamikus érték a(z) {$name} számára";
    }
  }
  
  $obj = new DynamicProperties();
  echo $obj->test;
?>

A kód végrehajtásának eredménye:

php'Dinamikus érték a(z) test számára'

Lásd még

  • a __set metódus,
    amely nem létező tulajdonság beállításakor hívódik meg
  • a __call metódus,
    amely nem létező metódus meghívásakor hívódik meg