问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php中如何实现函数重载呢?

发布网友 发布时间:2022-04-07 08:09

我来回答

2个回答

懂视网 时间:2022-04-07 12:31

我们知道PHP 的重载跟 Java 的重载是不同的。Java 允许类中存在多个同名函数,每个函数的参数不相同,而 PHP 中只允许存在一个同名函数。例如,Java 的构造函数可以有多个,PHP 的构造函数则只能有一个。

PHP 的重载是指通过魔术方法对属性和类的动态创建。

1、属性的重载:__get 与 __set

2、方法的重载:__call 与 __callStatic

(在线学习视频分享:php视频教程)

例如:Laravel 的请求类实现了属性重载,使代码变得更加的简洁

$name = $request->name;

该属性在类中并不存在,而是通过魔术方法来访问的,具体实现如下:

public function __get($key)
{ 
return Arr::get($this->all(), $key, function () use ($key) { 
 return $this->route($key); });
}

这种实现方式的应用非常广泛,例如归纳实现的原理:

class Foo
{ 
 private $params = [];
 function __construct(array $params = [])
 {
 $this->params = $params;
 }
 public function __set($name, $value)
 {
 $this->params[$name] = $value;
 }
 public function __get($name)
 {
 return $this->params[$name];
 }
 public function __isset($name)
 {
 return isset($this->params[$name]);
 }
 public function __unset($name)
 {
 unset($this->params[$name]);
 }
}

相关文章教程推荐:php教程

热心网友 时间:2022-04-07 09:39

PHP本身不能函数重载的,不过你可以使用类中的__call的魔术方法来实现。该魔术方法接受两个参数,一个数方法的名称,一个是包含该方法参数的数组。当对一个类调用一个不可见的方法时(比如该方法是private或者根本没有这个方法)被触发调用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女人梦见蛇的七大预兆解梦 PHOTOSHOP 怎么把眼睛点大 这些月销量10000+的防晒霜,是噱头还是真的好用? 大宝水凝保湿防晒露适合哪些肤质的人使用? 拥有人口过亿的国家最多的大洲是( )A.非洲B.亚洲C.欧洲D.大洋 世界国家最多的大洲是:( ) A.亚洲 B.大洋州 C.非洲 D.欧 拥有人口过亿的国家最多的大洲是:( ) A.非洲 B.亚洲 C.欧洲 D.大洋 餐厅一般中餐都有哪些摆台要求和标准 如何做味道正宗的中餐? 河南文科跟理科高考分数线相差多少 好医生继教学分查询 每天一睡着就做梦是什么原因? 继续医学教育的学分怎么查询? 睡着老是做梦是什么原因 夜总会一般消费多少 大家在酒吧一次消费都是多少? 医生的继续教育学分如何查询? 广州阿曼尼酒吧开个卡座多少钱 睡觉老做梦什么原因 怎么样查询卫生专业技术人员继续教育IC卡学分 去酒吧怎么消费阿,之前没去过,女生的话大概需要带多少钱,一般都点什么酒阿,还有卡座散座什么的什么意 在酒吧开了卡座还要门票钱吗? 在武汉酒吧定个卡座需要多少钱费用 上海酒吧MUSE卡座收费多少钱 四川护士学分卡号怎么查询 睡觉老做梦是什么原因(从睡着一直做到醒来) qq随心贴怎么弄? 四个人到赫本酒吧最低消费多少 晚上睡着以后总是做梦是什么原因? 酒吧里的卡座最低消费是多少呢,,一般的啤酒是多少钱一打呢? 可以推荐几道家常菜吗? 医学继续教育学分在刷卡后多长时间可以网上查询到? 在酒吧怎么开台子 还有怎么算钱 我想知道怎么查询我今年3月份办的学分卡,我想查询我的卡号 华医网个人学分查询怎样查 我存了40000块钱,利息是5厘,一个月利息是多少,一年是多少。怎么算。 我忘记了我的学习卡号怎么办?现在我学习了没有学分 梦到被老虎追,怎么解 excel怎么用快捷键插入一行 动漫男生图片,有吗? 贷款4万,年利率是5厘,时间是14个月,利息应该是多少 梦见我和我的朋友被老虎追是有什么预示呢? 想要一些动漫男生图,最好正面,半身的高清图,画风比较清新,简单 iPad远程excel增加一行快捷键 月息五厘 四万元每个月应该还多少利息???按月利率算的话,四万月利息五厘,一个月应该还多少利 借同事4万 月息5厘 借一年 是多少利息 划算吗 利息是多少钱?? 请问4厘5的利息一万块一年的年利息和月利息分别是多少? 哪种洗面奶成分比较好? 氨基酸洗面奶。和烟酰胺洗面奶。有什么区别? 姜瑜 男 姜丝丝入扣 瑜 瑕不掩瑜。谢谢 怎样区别洗面奶是否温和?