登录  /  注册
博主信息
博文 55
粉丝 0
评论 0
访问量 50094
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP-方法重载和静态方法重载-0904
Bean_sproul
原创
1102人浏览过

重载方法必须声明为public
重载分为:属性重载和方法重载
属性重载:__get();__set():__isset();__unset();
方法重载:__call();静态方法__callstatic();
使用方法__call($method.$arguments);//方法名,数组
使用方法__callstatic($method.$arguments)

实例

<?php 
//重载方法必须声明为public
//重载分为:属性重载和方法重载
//属性重载:__get();__set():__isset();__unset();
//方法重载:__call();静态方法__callstatic();
//使用方法__call($method.$arguments);
//使用方法__callstatic($method.$arguments)

echo '__call调用不可访问或不存在的方法时被调用<br>';
echo '__callStatic调用不可访问或不存在的静态方法时被调用<hr>';

class ClassTest
{
	
	public function __call($method,$arguments)  //创建一个不存在的方法
	{
       /*return $method; //方法名称
       return $arguments;//数组值*/
       $args =implode(',', $arguments);   //implode将数组中元素切割为字符串
       return '方法名:'.$method.'<br>参数:'.$args;
	}

	private function select($a)  //创建一个私有方法
	{
       return __METHOD__;
       return $this->$a;
	}


	public static function __callStatic($a,$b)  //创建一个静态的不存在的方法
	{
	   $args =implode(',', $b);   //implode将数组中元素切割为字符串
       return '方法名:'.$a.'<br>参数:'.$args;
    }
}

//实例化对象
$ClassTest = new ClassTest();

//输出一个不存在的方法
echo $ClassTest->show('南京','上海','北京').'<hr>';
//输出一个私有方法
echo $ClassTest->select('a','1','3').'<hr>';

//从外部访问一个不存在的静态方法
echo ClassTest::abc('1','2','3');



?>

运行实例 »

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

 

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号

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