正确理解PHP重载:通过魔术方法动态创建属性和类
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]);}}
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
