博客列表 >属性重载应用

属性重载应用

葛佬的博客
葛佬的博客原创
2019年10月14日 16:33:58670浏览

一、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));

运行实例 »

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

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议