__isset Metodu

__isset metodu PHP'de sihirli bir metoddur ve bir nesnenin özelliğinin varlığını isset veya empty fonksiyonları ile kontrol etmeye çalışırken, bu özelliğe erişilemediğinde veya özellik mevcut olmadığında çağrılır. Metot bir parametre alır - kontrol edilen özelliğin adı.

Sözdizimi

phppublic function __isset(string $name): bool

Örnek

__isset sihirli metoduna sahip bir sınıf oluşturalım:

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

Kodun çalıştırılmasının sonucu:

phptrue
false

Örnek

Dinamik özelliklerle kullanım:

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

Kodun çalıştırılmasının sonucu:

phptrue
false

Ayrıca Bakınız

  • erişilemeyen özellikler okunurken çağrılan
    __get metodu
  • erişilemeyen özlelliklere yazılırken çağrılan
    __set metodu
  • erişilemeyen özellikler silinirken çağrılan
    __unset metodu