Metodi __unset

Menetelmä __unset on yksi PHP:n taikamenetelmistä. Sitä kutsutaan automaattisesti, kun yritetään poistaa olematonta tai ei-saavutettavaa olion ominaisuutta unset-funktiolla. Menetelmä saa yhden parametrin - poistettavaksi yritetyn ominaisuuden nimen.

Syntaksi

phppublic function __unset(string $name): void

Esimerkki

Luodaan luokka, jossa on taikamenetelmä __unset ja yritetään poistaa olematonta ominaisuutta:

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

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

Koodin suorituksen tulos:

phpYritetään poistaa 'a'
Yritetään poistaa 'c'

Esimerkki

__unset:n käyttö yksityisiin ominaisuuksiin pääsyn hallintaan:

php<?php
class User {
  private $email = 'user@example.com';
  
  public function __unset($name) {
    if ($name === 'email') {
      throw new Exception("Ei voi poistaa yksityistä ominaisuutta 'email'");
    }
  }
}

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

Koodin suorituksen tulos:

phpException: Ei voi poistaa yksityistä ominaisuutta 'email'

Katso myös

  • menetelmä __set,
    jota kutsutaan kirjoitettaessa ei-saavutettavaan ominaisuuteen
  • menetelmä __get,
    jota kutsutaan luettaessa ei-saavutettavaa ominaisuutta
  • menetelmä __isset,
    jota kutsutaan tarkistettaessa ei-saavutettavan ominaisuuden olemassaoloa