Featured Posts

Writing Website Scrapers in PHPWriting Website Scrapers in PHP This article discusses about how to write a website scraper using PHP for web site data extraction. The concepts taught can be applied and programmed in Java, C#, etc. Basically any language that has a...

Readmore

12 common programming mistakes to avoid12 common programming mistakes to avoid Programming is an art and science and like all art and science the only way to learn is from mistakes. I have made many... and I would like to share with you the mistakes that I have made over my journey...

Readmore

7 habits of highly effective freelance programmers7 habits of highly effective freelance programmers I have developed these based on my freelancing experience. Though I have discontinued freelancing, but would like to share my practices with you. These are basic practices and have been developed over...

Readmore

  • Prev
  • Next

PHP5 Tutorial - Magic Methods - __isset() and __unset()

Posted on : 03-11-2007 | By : admin | In : PHP, PHP Tutorials, PHP5 Magic Methods, PHP5 OOPS Tutorials

4

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)

  1. PHP5 Tutorial - Learn to create a PHP5 Class
  2. PHP5 Tutorial - Learn to Create a PHP5 Class Object
  3. PHP5 Tutorial - Defining Attributes of a PHP5 Class
  4. PHP5 Tutorial - Defining Methods of a PHP5 Class
  5. PHP5 Tutorial - Creating a PHP5 Constructor __construct()
  6. PHP5 Tutorial OOPS - Creating a PHP5 Destructor __destruct()
  7. PHP5 Tutorial OOPS - PHP5 Class Access Specifiers - public, private and protected
  8. PHP5 Tutorial - Magic Methods - __toString() method
  9. PHP5 Tutorial - Magic Methods - __get() and __set()
  10. PHP5 Tutorial - Magic Methods - __isset() and __unset()
  11. PHP5 Tutorial - Magic Methods - __call() method
  12. PHP5 Tutorial - Magic Methods - __autoload() method
  13. PHP5 Tutorial - Magic Methods - __sleep() and __wakeup()
  14. PHP5 Tutorial - Magic Methods - __clone() method

Comments (4)

[...] 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

unset won’t return anything, so it should be

public function __unset($dt) {
unset($this->data[$dt]);
}

And you can check whether the value got unset using :

unset($c->name);
echo ‘name=>’.$c->name;

Thanks…

Write a comment

Enter this code