Hei*_*ski 41
缺点
文本搜索找不到这些功能
系统更难理解,特别是对于新手
重构工具可能会更频繁地失败
一般来说,魔术方法在幕后做事,程序员可能没有意识到这种情况正在发生,这使得调试变得更加困难.
当搜索函数(或其他符号)找不到所有匹配时,删除旧代码变成了一场噩梦,这种恐惧会导致死代码堆积在代码库中.如果删除了死代码,则可能导致未知位置破损.
mai*_*450 24
我不认为魔术方法是最佳或最差的练习:取决于你想要实现的目标,你可以使用或不使用......我的意思是你不必调整代码尽可能使用它们,但是如果你不得不完全没有问题.
如果你有一个只有3个且只有3个属性的对象你不需要使用魔术setter/getter,但在某些高级情况下,它们是处理非常复杂事物的好方法(ORM系统等......)
也许其中一些已被弃用,我不知道,但大多数都不是.
至少,Google建议使用其中一些魔术功能:
避免写天真的二传手和吸气剂
在PHP中编写类时,您可以通过直接使用对象属性来节省时间并加快脚本速度,而不是编写天真的setter和getter.在以下示例中,dog类使用setName()和getName()方法来访问name属性.
Run Code Online (Sandbox Code Playgroud)class dog { public $name = ''; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } }
请注意,setName()和getName()只是分别存储和返回name属性.
Run Code Online (Sandbox Code Playgroud)$rover = new dog(); $rover->setName('rover'); echo $rover->getName();
直接设置和调用name属性可以 快100%,并缩短开发时间.
Run Code Online (Sandbox Code Playgroud)$rover = new dog(); $rover->name = 'rover'; echo $rover->name;
原始链接:http://code.google.com/speed/articles/optimizing-php.html
存档版本:https://web.archive.org/web/20120208060457/http://code.google.com/speed/articles/optimizing-php.html
无论如何,这些方法可能不具备性能,但它们根本不被弃用.
归档时间: |
|
查看次数: |
10295 次 |
最近记录: |