Metode __isset

Metode __isset adalah metode ajaib dalam PHP dan dipanggil ketika mencoba memeriksa keberadaan properti objek menggunakan fungsi isset atau empty, ketika properti tersebut tidak dapat diakses atau tidak ada. Metode ini menerima satu parameter - nama properti yang diperiksa.

Sintaks

phppublic function __isset(string $name): bool

Contoh

Mari buat kelas dengan metode ajaib __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));
?>

Hasil eksekusi kode:

phptrue
false

Contoh

Penggunaan dengan properti dinamis:

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

Hasil eksekusi kode:

phptrue
false

Lihat juga

  • metode __get,
    yang dipanggil saat membaca properti yang tidak dapat diakses
  • metode __set,
    yang dipanggil saat menulis ke properti yang tidak dapat diakses
  • metode __unset,
    yang dipanggil saat menghapus properti yang tidak dapat diakses