Метод __unset

Метод __unset је један од магијских метода у PHP. Он се аутоматски позива када се покуша обрисати непостојеће или недоступно својство објекта помоћу функције unset. Метод прихвата један параметар - име својства које се покушава обрисати.

Синтакса

phppublic function __unset(string $name): void

Пример

Направимо класу са магијским методом __unset и покушајмо да обришемо непостојеће својство:

php<?php
class MyClass {
  private $data = ['a' => 1, 'b' => 2];
  
  public function __unset($name) {
    echo "Покушај брисања '$name'\n";
    unset($this->data[$name]);
  }
}

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

Резултат извршавања кода:

phpПокушај брисања 'a'
Покушај брисања 'c'

Пример

Употреба __unset за контролу приступа приватним својствима:

php<?php
class User {
  private $email = 'user@example.com';
  
  public function __unset($name) {
    if ($name === 'email') {
      throw new Exception("Није могуће обрисати приватно својство 'email'");
    }
  }
}

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

Резултат извршавања кода:

phpException: Није могуће обрисати приватно својство 'email'

Такође погледајте

  • метод __set,
    који се позива при упису у недоступно својство
  • метод __get,
    који се позива при читању недоступног својства
  • метод __isset,
    који се позива при провери постојања недоступног својства