如何理解PHP与Java重载,两者什么差异
Admin 2022-11-17 群英技术资讯 804 次浏览
PHP 的重载跟 Java 的重载不同,不可混为一谈。Java 允许类中存在多个同名函数,每个函数的参数不相同,而 PHP 中只允许存在一个同名函数。例如,Java 的构造函数可以有多个,PHP 的构造函数则只能有一个。
PHP 的重载是指 通过魔术方法对属性和类的动态创建
● 属性的重载 - __get 与 __set
● 方法的重载 - __call 与 __callStatic
例如,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]); } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了如何利用PHP实现三种不同的抽奖算法:随机抽奖、概率抽奖和内定抽奖,文中的示例代码讲解详细,感兴趣的可以了解一下
php高并发处理:1、应用程序与静态资源的分离。2、使用由应用程序生成的页面缓存。3、群集、多个服务器功能相同,主要起分流作用。4、反向代理。5、CDN。
在thinkphp5中,MVC分层指的是模型层、视图层和控制器层分工合作,逻辑层和表现层进行分开的操作;模型层负责数据库操作,控制器就是一个模块类,根据url进行调度和操作,视图用于连接action控制器和模板文件。
变量的范围即它定义的上下文背景(也就是它的生效范围)。大部分的PHP变量只有一个单独的范围。这个单独的范围跨度同样包含了include和require引入的文件。例如:<?...
cmd运行workerman中文乱码可以通过修改cmd窗口编码格式为utf-8来解决。可以在运行前使用命令“chcp 65001”临时修改,也可以在注册表中永久修改。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008