魔术方法PHP中的最佳实践?魔术方法PHP中的最佳实践?
回答
我不认为神奇的方法是最好的或最坏的做法:取决于你想达到什么你可以使用它们或不... 我的意思是,你不必调整你的代码尽可能使用它们,但是如果你必须这样做,那完全没有问题。
如果你有一个拥有3个属性但只有3个属性的对象,你不需要使用魔术设置器/获取器,但是在某些高级的情况下,它们是一个很好的方法来完成非常复杂的事情(ORM系统等)
也许其中一些已被弃用,我不知道,但大多数都不是。
我不这么认为。我的IDE无法向魔术设置者和获取者显示“提示”。尽管代码有时难以调试。
我更喜欢不使用它们,bette通过我的IDE生成所需的方法(像许多setters和getters)。
这可能适用于getter和setter,但不是'__construct','__clone'等也被认为是“神奇的方法”?http://php.net/manu al/en/language.oop5.magic.php没有他们的人会如何工作? – 2010-04-23 11:02:53
正确同意@Potter i平均@Pekka :) – 2010-04-23 11:06:28
至少,其中的一些神奇的功能,建议由谷歌:
避免写天真getter和setter方法
当PHP编写的类,可以节省时间和加快您的 通过直接使用对象属性而不是 编写简单的制定者和获得者。在以下示例中,狗 类使用setName()和getName()方法来访问名称 属性。
class dog { public $name = ''; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } }
注意的setName()输出,getName()什么都不做比商店越来越 分别返回name属性。
$rover = new dog(); $rover->setName('rover'); echo $rover->getName();
设置和调用name属性直接可以运行 up to 100% faster,以及削减开发时间。
$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
无论如何,这些方法可能不是高性能,但他们不会被弃用的。
在这里,另一种意见:http://www.garfieldtech.com/sites/default/files/benchmarks.png:D (请参阅http://www.garfieldtech .com/blog/magic-benchmarks) – Rolf 2010-04-23 12:01:30
这个答案完全是题外话。 “Google”并不反对使用本地getter/setter与魔术功能。他们建议不要使用本地getter/setter,如果他们只是直接修改属性。这不是一回事。 – 2013-08-26 10:28:08
他们反对使用“天真”的getter/setter。当时最初问题的流行答案(3年前,btw,这里是我给你的:http://xkcd.com/386/)建议不要使用魔术方法。我的回答只是指出,这不一定是绝对的事实。 – Rolf 2013-08-27 09:05:49
利弊
文本搜索没有找到该功能
系统是很难理解,尤其是对于新手
重构工具威力更经常失败
一般来说,魔术方法做事情的幕后程序员可能没有意识到它的发生,这使得调试困难。
当搜索功能(或其他符号)找不到所有匹配时,它将成为一个噩梦来删除旧代码,这种恐惧会导致死代码堆积在代码库中。如果移除了死码,它可能会导致未知地方发生破损。
- 1. python中是否有可扩展的魔术方法的最佳实践?
- 2. 最佳实践request.method方法
- 3. java中mutator方法的最佳实践
- 4. PHP魔术方法和空
- 5. 学习新技术的最佳实践
- 6. JavaScript中的魔术方法
- 7. PHP __get()最佳实践
- 8. php和mysql,最佳实践
- 9. python的魔术PHP方法__getattr __()
- 10. vb.net相当于PHP的魔术方法
- 11. C#方法命名最佳实践
- 12. Linq方法体最佳实践问题
- 13. 最佳实践从一个const-方法
- 14. PHP中的最佳实践是什么?
- 15. 学习.NET/OOP最佳实践的最佳方法?
- 16. 最佳网站地图技术和最佳实践
- 17. 最佳实践
- 18. 最佳实践
- 19. 最佳实践
- 20. 最佳实践
- 21. 最佳实践
- 22. 最佳实践
- 23. 最佳实践
- 24. 最佳实践
- 25. 最佳实践
- 26. 最佳实践
- 27. 最佳实践?
- 28. 最佳实践
- 29. 最佳实践
- 30. 最佳实践
“最佳实践”是什么意思?你的问题对我来说并不合适。他们是工具,有些事情离不开他们。你想知道什么? – 2010-04-23 10:56:57
我正在读一本书n OOP我遇到了吸气和安装员,在那里我看到了神奇的方法术语..但是一旦有人告诉我他们已被弃用,是这样吗? – 2010-04-23 10:58:28
我的猜测是要么他认为他们是偷偷摸摸/作弊(像'我++'和'goto',或者他担心他们被过度使用或不可靠,你知道,就像使用表格造型 – Anthony 2010-04-23 10:59:52