Mbinu __unset

Mbinu __unset ni moja kati ya mbinu za kichawi katika PHP. Huitwa moja kwa moja, wakati wanapojaribu kufuta sifa isiyopo au isiyopatikana ya kitu kwa kutumia kitendo unset. Mbinu hupokea parameta moja - jina la sifa ambayo inajaribu kufutwa.

Syntaxi

phppublic function __unset(string $name): void

Mfano

Tutundie darasa lenye mbinu ya kichawi __unset na tujaribu kufuta sifa isiyopo:

php<?php
class MyClass {
  private $data = ['a' => 1, 'b' => 2];
  
  public function __unset($name) {
    echo "Inajaribu kufuta '$name'\n";
    unset($this->data[$name]);
  }
}

$obj = new MyClass();
unset($obj->a);
unset($obj->c);
?>

Matokeo ya utekelezaji wa kodi:

phpInajaribu kufuta 'a'
Inajaribu kufuta 'c'

Mfano

Matumizi ya __unset kudhibiti upatikanaji wa sifa za kibinafsi:

php<?php
class User {
  private $email = 'user@example.com';
  
  public function __unset($name) {
    if ($name === 'email') {
      throw new Exception("Haiwezekani kufuta sifa ya kibinafsi 'email'");
    }
  }
}

$user = new User();
unset($user->email);
?>

Matokeo ya utekelezaji wa kodi:

phpException: Haiwezekani kufuta sifa ya kibinafsi 'email'

Angalia pia

  • mbinu __set,
    ambayo huitwa wakati wa kuandika kwenye sifa isiyopatikana
  • mbinu __get,
    ambayo huitwa wakati wa kusoma sifa isiyopatikana
  • mbinu __isset,
    ambayo huitwa wakati wa kukagua uwepo wa sifa isiyopatikana