Metoden __isset

Metoden __isset er en magisk metode i PHP og kaldes, når man forsøger at kontrollere eksistensen af en objektegenskab ved hjælp af funktionerne isset eller empty, når denne egenskab er utilgængelig eller ikke eksisterer. Metoden tager en parameter - navnet på den egenskab, der kontrolleres.

Syntaks

phppublic function __isset(string $name): bool

Eksempel

Lad os oprette en klasse med den magiske metode __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));
?>

Resultatet af kodekørslen:

phptrue
false

Eksempel

Brug med dynamiske egenskaber:

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

Resultatet af kodekørslen:

phptrue
false

Se også

  • metoden __get,
    som kaldes ved læsning af utilgængelige egenskaber
  • metoden __set,
    som kaldes ved skrivning til utilgængelige egenskaber
  • metoden __unset,
    som kaldes ved sletning af utilgængelige egenskaber