__unset Metodu
__unset metodu, PHP'deki büyülü metotlardan biridir. unset işlevi kullanılarak bir nesnenin mevcut olmayan veya erişilemez bir özelliğini silmeye çalışıldığında otomatik olarak çağrılır. Metot, silinmeye çalışılan özelliğin adı olan bir parametre alır.
Sözdizimi
public function __unset(string $name): void
Örnek
__unset büyülü metoduna sahip bir sınıf oluşturalım ve mevcut olmayan bir özelliği silmeyi deneyelim:
<?php
class MyClass {
private $data = ['a' => 1, 'b' => 2];
public function __unset($name) {
echo "'$name' silinmeye çalışılıyor\n";
unset($this->data[$name]);
}
}
$obj = new MyClass();
unset($obj->a);
unset($obj->c);
?>
Kodun çalıştırılmasının sonucu:
'a' silinmeye çalışılıyor
'c' silinmeye çalışılıyor
Örnek
Özel niteliklere erişimi kontrol etmek için __unset kullanımı:
<?php
class User {
private $email = 'user@example.com';
public function __unset($name) {
if ($name === 'email') {
throw new Exception("'email' özel özelliği silinemez");
}
}
}
$user = new User();
unset($user->email);
?>
Kodun çalıştırılmasının sonucu:
Exception: 'email' özel özelliği silinemez