PHP5 Tutorial - Magic Methods - __isset() and __unset()
In my previous PHP5 OOPS tutorial on PHP5 Tutorial - Magic Methods - __get() and __set(), we learnt how and when to use these magic methods.
This PHP5 OOPS tutorial will teach you how and when to use the magic methods __isset() and __unset().
These methods are automatically called internally when isset() and unset() is called on undeclared data members. The magic method __isset() method receives an argument - the value of which is the name of the variable that the program wants to test if the variable is set or not.
The magic method __unset() method receives an argument - the value of which is the name of the variable that the program wants to unset.
Look at the example below:
class Customer { private $data = array(); public function __set($dt, $vl) { $this->data[$dt] = $vl; } public function __get($dt) { return $this->data[$dt]; } public function __isset($dt) { return isset($this->data[$dt]); } public function __unset($dt) { return unset($this->data[dt]); } } $c = new Customer(); $c->name = “Sunil Bhatia”; echo isset($c->name).”\n”; echo unset($c->name);
In the example above the script creates a new Customer Object. The program assigns a string value to an undeclared variable i.e. $c->name. The undeclared variable is handled by the magic method __set(). Read this post on PHP5 Magic Methods __set() if you need more understanding how the magic method __set() works.
The program ties to check if the undeclared variable i.e., $c->name has been set or not using the PHP method isset(). Since $c->name is an undeclared variable the PHP5 magic method __isset() is invoked that takes the name of the undeclared variable i.e. ‘name’ and checks if the internal array $data[’name’] is set or not.
Similarly, when the program calls unset() on the undeclared variable i.e. $c->name, the PHP5 magic method __unset() is invoked that takes the name of the undeclared variable i.e. ‘name’ and unsets the internal array $data[’name’].
Related Posts on PHP5 Tutorial - Object Oriented Programming (OOPS)
- PHP5 Tutorial - Learn to create a PHP5 Class
- PHP5 Tutorial - Learn to Create a PHP5 Class Object
- PHP5 Tutorial - Defining Attributes of a PHP5 Class
- PHP5 Tutorial - Defining Methods of a PHP5 Class
- PHP5 Tutorial - Creating a PHP5 Constructor __construct()
- PHP5 Tutorial OOPS - Creating a PHP5 Destructor __destruct()
- PHP5 Tutorial OOPS - PHP5 Class Access Specifiers - public, private and protected
- PHP5 Tutorial - Magic Methods - __toString() method
- PHP5 Tutorial - Magic Methods - __get() and __set()
- PHP5 Tutorial - Magic Methods - __isset() and __unset()
- PHP5 Tutorial - Magic Methods - __call() method
- PHP5 Tutorial - Magic Methods - __autoload() method
- PHP5 Tutorial - Magic Methods - __sleep() and __wakeup()
- PHP5 Tutorial - Magic Methods - __clone() method
Filed under: PHP, PHP Tutorials, PHP5 Magic Methods, PHP5 OOPS Tutorials
[…] PHP5 OOPS Tutorial - Magic Methods - __isset() and __unset() […]
[…] PHP5 OOPS Tutorial - Magic Methods - __isset() and __unset() […]
public function __unset($dt) {
return unset($this->data[dt]);
}
There’s a typo
dt on line 2 -> $dt