Methode __isset

De methode __isset is een magische methode in PHP en wordt aangeroepen bij een poging om het bestaan van een eigenschap van een object te controleren met de functies isset of empty, wanneer deze eigenschap niet toegankelijk of niet bestaat. De methode accepteert één parameter - de naam van de te controleren eigenschap.

Syntaxis

phppublic function __isset(string $name): bool

Voorbeeld

Laten we een klasse maken met een magische methode __isset:

php<?php
class User {
  private $data = [
    'name' => 'John',
    'age' => 30
  ];
  
  public function __isset($name) {
    return isset($this->data[$name]);
  }
}

$user = new User();
var_dump(isset($user->name));
var_dump(isset($user->email));
?>

Resultaat van de code-uitvoering:

phptrue
false

Voorbeeld

Gebruik met dynamische eigenschappen:

php<?php
class DynamicProperties {
  private $storage = [];
  
  public function __isset($name) {
    return array_key_exists($name, $this->storage);
  }
  
  public function __set($name, $value) {
    $this->storage[$name] = $value;
  }
}

$obj = new DynamicProperties();
$obj->test = 'value';
var_dump(isset($obj->test));
var_dump(isset($obj->unknown));
?>

Resultaat van de code-uitvoering:

phptrue
false

Zie ook

  • methode __get,
    die wordt aangeroepen bij het lezen van niet-toegankelijke eigenschappen
  • methode __set,
    die wordt aangeroepen bij het schrijven naar niet-toegankelijke eigenschappen
  • methode __unset,
    die wordt aangeroepen bij het verwijderen van niet-toegankelijke eigenschappen