登录  /  注册
博主信息
博文 18
粉丝 0
评论 0
访问量 19515
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
属性重载应用
葛佬的博客
原创
645人浏览过

一、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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学