__unset metodu

__unset metodu PHP-däki syrly metodlaryň biridir. Ol, unset funksiýasy arkaly obýektiň ýok bolan ýa-da elýeterli däl aýratynlygyny aýyrmak synanyşygynda awtomatiki ýagdaýda çagyrylýar. Metod bir parametr kabul edýär - aýyrylmağa synanyşylýan aýratynlygyň ady.

Sintaksis

phppublic function __unset(string $name): void

Mysal

__unset syrly metodi bilen klas dörediň we ýok bolan aýratynlygy aýyrmaga synanyşalyň:

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

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

Kodyň netijesi:

php'a' aýyrmaga synanyşyk
'c' aýyrmaga synanyşyk

Mysal

Hususy aýratynlyklara girişi dolandyrmak üçin __unset ulanylyşy:

php<?php
class User {
  private $email = 'user@example.com';
  
  public function __unset($name) {
    if ($name === 'email') {
      throw new Exception("Hususy 'email' aýratynlygyny aýyryp bolmaz");
    }
  }
}

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

Kodyň netijesi:

phpException: Hususy 'email' aýratynlygyny aýyryp bolmaz

Şeýle-de gözüňizi aýlaň

  • elýeterli däl aýratynlyga ýazmakda çagyrylýan __set metodu
  • elýeterli däl aýratynlygy okamakda çagyrylýan __get metodu
  • elýeterli däl aýratynlygyň bar bolşyny barlamakda çagyrylýan __isset metodu