Methode __isset

Die Methode __isset ist eine magische Methode in PHP und wird aufgerufen, wenn versucht wird, die Existenz einer Objekteigenschaft mit den Funktionen isset oder empty zu überprüfen, wenn diese Eigenschaft nicht zugänglich oder nicht vorhanden ist. Die Methode akzeptiert einen Parameter - den Namen der zu überprüfenden Eigenschaft.

Syntax

phppublic function __isset(string $name): bool

Beispiel

Erstellen wir eine Klasse mit der magischen 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));
?>

Ergebnis der Codeausführung:

phptrue
false

Beispiel

Verwendung mit dynamischen Eigenschaften:

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

Ergebnis der Codeausführung:

phptrue
false

Siehe auch

  • Methode __get,
    die beim Lesen nicht zugänglicher Eigenschaften aufgerufen wird
  • Methode __set,
    die beim Schreiben in nicht zugängliche Eigenschaften aufgerufen wird
  • Methode __unset,
    die beim Löschen nicht zugänglicher Eigenschaften aufgerufen wird