仍然在PHP-OOP训练轮上,这个问题可能属于failblog.org。 =)
PHP中方法链的好处是什么?
我不确定这是否重要,但我将静态调用我的方法。 e.g。
$foo = Bar::get('sysop')->set('admin')->render();
根据我的阅读,任何返回$this
的方法都可以被链接。我刚学会了这是PHP5中的新功能。在我看来,如果我不必实例化一个全新的对象(静态调用它)并从类中选择我需要的几个方法,那么可能会有速度优势吗?
我有这个权利吗?
答案 0 :(得分:6)
使用这两种方法都没有显着的性能优势,尤其是在具有字节码缓存的生产服务器上。
方法链接只是写东西的一种较短方式。与较长版本比较:
$foo = Bar::get('sysop');
$foo -> set('admin');
$foo -> render();
它确实有一些怪癖:典型的IDE(如Eclipse)可以在较长的版本中自动完成代码(只要$foo
的类型已知)但需要您记录返回在短版本中工作的所有方法的类型。
答案 1 :(得分:0)
它仍然实例化一个对象;它从未分配给变量。基本上,你只是调用匿名对象的方法。
我认为任何循环节省都可以忽略不计,但我认为在这行代码之后会立即释放未分配的对象,因此您可以节省一些内存(您可以通过将分配的对象设置为{{1}来完成相同的操作当你完成它们的时候)。
人们使用方法链接的主要原因是为了方便;你在一行代码中做了很多。就我个人而言,我觉得它很混乱而且不可维护。
答案 2 :(得分:0)
如果我不需要实例化整体 新对象(静态调用)和 只需选择我需要的几种方法 来自班级?
错误!要返回$this
,必须实例化该类。