Blogger Information
Blog 18
fans 0
comment 0
visits 20161
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
属性重载应用
葛佬的博客
Original
672 people have browsed it

一、PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法。可以通过魔术方法(magic methods)来实现的。

二、当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。

三、所有的重载方法都必须被声明为 public。

四、属性重载可以通过 __get,__set,__isset,__unset几个特殊方法来进行

五、方法重载可以通过__call方法来完成,调用未定义的方法时,方法名和方法接收的参数将会传给__call方法,php传递__call的值返回给未定义的方法。

六、实例


实例

<?php
class Overloader
{
	public $n = 'public';
	private $properties = array();
 
	function __get($property_name)
	{
		if(isset($this->properties[$property_name]))
		{
			return ($this->properties[$property_name]);
		}
		else
		{
			return (NULL);
		}
	}
 
	function __set($property_name,$value)
	{
		$this->properties[$property_name] = $value;
	}
 
	public function __isset($property_name)
	{
		return isset($this->properties[$property_name]);
	}
 
	public function __unset($property_name)
	{
		unset($this->properties[$property_name]);
	}
}
 
$o = new Overloader();
$o->test = 'content';
 
echo '$o->test:'; echo $o->test; 
echo '<br>';
var_dump(isset($o->test));

运行实例 »

点击 "运行实例" 按钮查看在线实例

Correction status:qualified

Teacher's comments:无论是属性, 还是方法的重载 , 都是提供了一种容错机制, 但我们可以利用语言的宽容, 可以做许多有趣的事情
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post