Kaedah __isset

Kaedah __isset ialah kaedah ajaib dalam PHP dan dipanggil apabila cuba menyemak kewujudan sifat objek menggunakan fungsi isset atau empty, apabila sifat tersebut tidak boleh diakses atau tidak wujud. Kaedah ini menerima satu parameter - nama sifat yang disemak.

Sintaks

phppublic function __isset(string $name): bool

Contoh

Mari buat kelas dengan kaedah 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));
?>

Keputusan pelaksanaan kod:

phptrue
false

Contoh

Penggunaan dengan sifat dinamik:

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

Keputusan pelaksanaan kod:

phptrue
false

Lihat juga

  • kaedah __get,
    yang dipanggil apabila membaca sifat yang tidak boleh diakses
  • kaedah __set,
    yang dipanggil apabila menulis kepada sifat yang tidak boleh diakses
  • kaedah __unset,
    yang dipanggil apabila memadam sifat yang tidak boleh diakses