PHP 语言需要避免的 10 大误区 已翻译 100%

大王叫我来卖萌 投递于 2013/07/02 09:21 (共 11 段, 翻译完成于 07-02)
阅读 10091
收藏 95
PHP
3
加载中

PHP是一种非常流行的开源服务器端脚本语言,你在万维网看到的大多数网站都是使用php开发的。但是,你大概很奇怪的注意到有少部分的人发誓要离php远远的。但是令人更奇怪的是或者很震惊的说他们不用php是因为一些被证实的语言缺点。他们决定不用php,是因为误解。

是的,你读到的那些是误解。

让我们看看这些误解是:

桔子
翻译于 2013/07/02 12:09
1

1. PHP是一种面向对象语言,但面向对象并不彻底

这完全不对。所有认为php不是彻底面向对象的程序员,尤其是Java程序员,都需要上一个PHP的基础培训;他们会发现PHP中大量面向对象的特性。例如:接口、方法、抽象类等等。我同意早期的PHP版本确实不支持太多面向对象的特性,但PHP5已经有强大的面向对象支持。而且,你一定想不到编码在PHP中会变得如此简单,那是因为PHP和面向对象结合的原因。

所以,消除这个误解吧。

crazymus
翻译于 2013/07/02 12:43
2

2.PHP无法实现特定功能

我很清楚这种表述很含糊,但是我不能想出任何更好的说法。这是一个很含糊的误解,开发人员认为PHP不能帮助他们实现一些诸如内存访问的功能或者一些PHP主要发行版没有提供支持的功能。但事实是PHP是一种可扩展的语言,所以你需要做的是用C或者C++编码,然后创建对应的扩展。

其实,你根本不需要自己动手去创建扩展,因为这里已经有数以百计的可用扩展。你唯一需要做的就是去寻找它们。

315君
翻译于 2013/07/02 12:57
2

3.PHP 是不安全的

开发者对PHP的另外一个误解就是PHP网站和应用是不安全的。但是,为什么你会希望它在默认情况下是安全,为什么不编写安全的代码? 我知道这里一直存在很多不安全的PHP代码,因为最初的学习曲线是简单的而且很容易上手。所以,作为一个开发者,你需要使它尽可能的安全。

.Net可以帮助你在默认情况下是安全的,相比之下PHP确实缺少很多。但是如果你是一个训练有素的程序员,那么你其实不要默认情况的安全帮助。Include通常是安全的,但是你需要要小心。如果它们的路径是动态生成的,对指令的透彻理解可以帮助你让代码更安全。

315君
翻译于 2013/07/02 13:05
2

4. 它不能适应大型应用

大型复杂应用需要建立在自身可靠和高性能的语言之上,这是PHP在一定程度上所没有的。但是,如果你设计和开发的应用程序架构稳定,为什么你会对它的性能和可扩展性有疑问呢?

事实上一些顶尖网站,如Facebook、维基百科和雅虎等等,都是基于PHP构建的,就像我们所想的那样,这些巨型网站都工作的很好。

315君
翻译于 2013/07/02 13:11
2

5. PHP只能用于网站开发

这也是一个误解,尽管看起来它有点合乎逻辑,因为PHP是网站开发中最常见的语言。但也有一些被称为命令行界面的东西,这可以确保你的PHP应用程序可以在Web服务器之外运行。

你可能不相信,但即使是那些很大程度上取决于CPU能力的应用程序,也可以用PHP开发的,使用PHP CLI来运行。

更重要的是,如果你想使用PHP开发桌面应用程序,不用担心,使用Windows特定扩展你可以做到这一点。

315君
翻译于 2013/07/02 13:19
1

6.开发过程慢

这是一直广为流传的误解。我不知道起源于何处?这个流言可能来自于曾经一个时期php代码很乱并且代码中四处充斥着Mysql语句(他们以此为反例,但是实际上我们都不这样用)。问题是为什么这样开发过程就慢了?当大量的php框架出现时,可以大大的加速开发的过程。毋庸置疑,你可以在短时间内开发出很大的程序,不论它有多么的复杂。所以,你用php开发一点都不慢,特别是当你使用php框架的时候。

桔子
翻译于 2013/07/02 16:16
2

7.专业开发人员不使用PHP

PHP是针对初学者的,它是为那些不是认认真真做开发的人设计的。这些说法都和PHP的使用有关。这只是一种误解,认同它没有任何意义。这里有如此多的网络应用,包括一些大型的,都是使用PHP构建的。可以想象这些说法是多么不正确。

315君
翻译于 2013/07/02 13:41
1

8. 性能问题

这是一个棘手问题。这不是一个误解。和硬币有两个面一样,这个问题也是两方面的。事实上到处充斥着垃圾代码,隐式转换、不适用的模块、缺少操作符重载等等都能影响一个php应用的性能。但是这个依赖于你是不是有足够的能力去用好这个语言,用它编写稳定地、快速地应用。

性能是由你设计的架构和你写的代码来决定的!

桔子
翻译于 2013/07/02 15:26
1

9. 便宜没好货

这条貌似在逻辑上很站得住脚,但是用到php上那就是完全是误解了!事实上,php的最大优势就是他的免费和开源,这意味着大多数提供应用开发服务的开发 者必须都精通它。虽然免费开源会带来一定问题,但是这也为了使用他们服务的客户提供成本优势。与商业开发语言相比较,php的开发成本比价低,但是这并非 意味着它的质量值得怀疑。和正确的开发者一起工作,可以获得更高性能的php应用。

桔子
翻译于 2013/07/02 15:52
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(92)

bbasd
bbasd
我倒,脑残的南湖船老大,果然是看到PHP就黑,这么关注PHP。

就像他会了汉语 , 又学会了英文,就会反过来贬低汉语。
这么脑残的人, 难道是php开发组侮辱他全家了吗?
落尘

引用来自“徐长龙”的评论

PHP两个人能做一个完善的网站,但是其他语言至少6个人才可以……
没错 +1
y
yuweiqing120
支持
技术揣摩
技术揣摩

引用来自“helius”的评论

引用来自“heiing”的评论

引用来自“好大的凶兆”的评论

引用来自“heiing”的评论

引用来自“好大的凶兆”的评论

引用来自“好大的凶兆”的评论

引用来自“ParosFish”的评论

引用来自“好大的凶兆”的评论

最近这么多PHP的软文啊,毫无价值。。。
第一条,谁都知道PHP的面向对象很烂,非要狡辩。
比如:可以不生成对象就随意调用非静态方法而只是生成轻微的警告,接口约束不完整,可以跨过父类直接调用爷爷类的构造方法。
使用PHP开发桌面应用程序,更是一个笑话,找一个PHP开发的桌面程序我看看。
PHP运行效率高,更是笑话,那facebook还发明hip-hop,HVVM(?)干啥?都已经转成C++了,这个不是PHP的功劳吧?
PHP网站和应用是不安全的,这不争的事实

1、你以JAVA的那套逻辑和标准来看PHP的面向对象说它烂(或者说不符合你的理解和要求),就好比你嘲笑奥巴马的中文说得烂一样!
2、你举的有些例子在新版本中已经不存在,从侧面说明你对它的认识还停留在以前的某个阶段;随着PHP开源社区的发展,有些问题会被逐渐解决;
4、PHP的GTK、JeCat PHP Toolbox都是为桌面应用准备的。如果真要找一个导入也可以找到,只是没那么有名!这么多年肯定有人用过,不然早就停了!你说姚明会不会踢足球?当然会,只是他的长项是打篮球!术业有专攻。
5、PHP的性能问题,那要看在什么样的场景下跟谁比了,以及驾驭它的人水平如何!就像再好的赛车到你手上也开不过舒马赫!facebook那么高的浏览量和并发量,搞hiphop是一个明智的选择。由于码农讲究严谨,所以纠正一下,不是“hip-hop”是“HipHop”,不是“HVVM”,是“HHVM”,即使记不清了,也好歹先google一下嘛!
6、【PHP网站和应用是不安全的,这不争的事实】—— 你的认识难道还停在PHP4时代?在自由市场、自由选择的前提下,经常出现安全性问题的车,必然会慢慢被消费者抛弃!现在在道路上跑得比较多的某款车型,其安全性更多的是跟驾驶它的人有关吧?听你这话的意思,好像存在某个没有问题安全的语言?

1你以JAVA的那套逻辑和标准来看PHP的面向对象说它烂。你这岂不是又当运动员又当裁判?用PHP自己的眼光看PHP的OO。。这个有点。。
2.你举的有些例子在新版本中已经不存在。哪个在新版本中不存在?
3.我记不清HHVM,所以在后面打了个?号,这不是重点

PHP的OO特性,如果你觉得Java说服力不够,还可以搬出C++,.Net来。。要是还是说这就是PHP的特色,PHP自己的OO,OO就应该这样,我也只能默然。

请问你对OO的认识到什么程度?是哪个层次的程序员?

PHP,java 略懂一二,不服来辩

我只问你对OO认识,既然你都懂,那我问你两个问题:
一、基本的问题:PHP的变量是如何实现的?
二、判断一门语言是否OO有哪些指标?在这些指标中哪些是Java有,而PHP没有的?

这小哥,不用跟这SB辩了,你问这些问题这怂货还不得去Google啊~哈哈哈,跟一个标准的PHP喷子叫什么劲啊,JAVA没有漏洞,JAVA性能天下第一,JAVA OOP业界标准,JAVA吊炸天~入门困难和复杂度高竟然还成了一项优势~

竟然还有人黑HHVM,你忘了你爹JAVA是运行在JVM上的吗?哈哈哈~
技术揣摩
技术揣摩

引用来自“heiing”的评论

引用来自“好大的凶兆”的评论

引用来自“heiing”的评论

引用来自“好大的凶兆”的评论

引用来自“好大的凶兆”的评论

引用来自“ParosFish”的评论

引用来自“好大的凶兆”的评论

最近这么多PHP的软文啊,毫无价值。。。
第一条,谁都知道PHP的面向对象很烂,非要狡辩。
比如:可以不生成对象就随意调用非静态方法而只是生成轻微的警告,接口约束不完整,可以跨过父类直接调用爷爷类的构造方法。
使用PHP开发桌面应用程序,更是一个笑话,找一个PHP开发的桌面程序我看看。
PHP运行效率高,更是笑话,那facebook还发明hip-hop,HVVM(?)干啥?都已经转成C++了,这个不是PHP的功劳吧?
PHP网站和应用是不安全的,这不争的事实

1、你以JAVA的那套逻辑和标准来看PHP的面向对象说它烂(或者说不符合你的理解和要求),就好比你嘲笑奥巴马的中文说得烂一样!
2、你举的有些例子在新版本中已经不存在,从侧面说明你对它的认识还停留在以前的某个阶段;随着PHP开源社区的发展,有些问题会被逐渐解决;
4、PHP的GTK、JeCat PHP Toolbox都是为桌面应用准备的。如果真要找一个导入也可以找到,只是没那么有名!这么多年肯定有人用过,不然早就停了!你说姚明会不会踢足球?当然会,只是他的长项是打篮球!术业有专攻。
5、PHP的性能问题,那要看在什么样的场景下跟谁比了,以及驾驭它的人水平如何!就像再好的赛车到你手上也开不过舒马赫!facebook那么高的浏览量和并发量,搞hiphop是一个明智的选择。由于码农讲究严谨,所以纠正一下,不是“hip-hop”是“HipHop”,不是“HVVM”,是“HHVM”,即使记不清了,也好歹先google一下嘛!
6、【PHP网站和应用是不安全的,这不争的事实】—— 你的认识难道还停在PHP4时代?在自由市场、自由选择的前提下,经常出现安全性问题的车,必然会慢慢被消费者抛弃!现在在道路上跑得比较多的某款车型,其安全性更多的是跟驾驶它的人有关吧?听你这话的意思,好像存在某个没有问题安全的语言?

1你以JAVA的那套逻辑和标准来看PHP的面向对象说它烂。你这岂不是又当运动员又当裁判?用PHP自己的眼光看PHP的OO。。这个有点。。
2.你举的有些例子在新版本中已经不存在。哪个在新版本中不存在?
3.我记不清HHVM,所以在后面打了个?号,这不是重点

PHP的OO特性,如果你觉得Java说服力不够,还可以搬出C++,.Net来。。要是还是说这就是PHP的特色,PHP自己的OO,OO就应该这样,我也只能默然。

请问你对OO的认识到什么程度?是哪个层次的程序员?

PHP,java 略懂一二,不服来辩

我只问你对OO认识,既然你都懂,那我问你两个问题:
一、基本的问题:PHP的变量是如何实现的?
二、判断一门语言是否OO有哪些指标?在这些指标中哪些是Java有,而PHP没有的?

这小哥,不用跟这SB辩了,你问这些问题这怂货还不得去Google啊~哈哈哈,跟一个标准的PHP喷子叫什么劲啊,JAVA没有漏洞,JAVA性能天下第一,JAVA OOP业界标准,JAVA吊炸天~入门困难和复杂度高竟然还成了一项优势~
苦寒竹
苦寒竹

引用来自“ParosFish”的评论

引用来自“好大的凶兆”的评论

最近这么多PHP的软文啊,毫无价值。。。
第一条,谁都知道PHP的面向对象很烂,非要狡辩。
比如:可以不生成对象就随意调用非静态方法而只是生成轻微的警告,接口约束不完整,可以跨过父类直接调用爷爷类的构造方法。
使用PHP开发桌面应用程序,更是一个笑话,找一个PHP开发的桌面程序我看看。
PHP运行效率高,更是笑话,那facebook还发明hip-hop,HVVM(?)干啥?都已经转成C++了,这个不是PHP的功劳吧?
PHP网站和应用是不安全的,这不争的事实

1、你以JAVA的那套逻辑和标准来看PHP的面向对象说它烂(或者说不符合你的理解和要求),就好比你嘲笑奥巴马的中文说得烂一样!
2、你举的有些例子在新版本中已经不存在,从侧面说明你对它的认识还停留在以前的某个阶段;随着PHP开源社区的发展,有些问题会被逐渐解决;
4、PHP的GTK、JeCat PHP Toolbox都是为桌面应用准备的。如果真要找一个导入也可以找到,只是没那么有名!这么多年肯定有人用过,不然早就停了!你说姚明会不会踢足球?当然会,只是他的长项是打篮球!术业有专攻。
5、PHP的性能问题,那要看在什么样的场景下跟谁比了,以及驾驭它的人水平如何!就像再好的赛车到你手上也开不过舒马赫!facebook那么高的浏览量和并发量,搞hiphop是一个明智的选择。由于码农讲究严谨,所以纠正一下,不是“hip-hop”是“HipHop”,不是“HVVM”,是“HHVM”,即使记不清了,也好歹先google一下嘛!
6、【PHP网站和应用是不安全的,这不争的事实】—— 你的认识难道还停在PHP4时代?在自由市场、自由选择的前提下,经常出现安全性问题的车,必然会慢慢被消费者抛弃!现在在道路上跑得比较多的某款车型,其安全性更多的是跟驾驶它的人有关吧?听你这话的意思,好像存在某个没有问题安全的语言?

我觉得ASP也是安全的。只是ASP太容易上手,导致N多菜鸟程序员做程序太不严谨(过滤传递的参数,必须跟知道过马路红灯停一样深入人心)。而PHP则在性能、功能上更上一层楼,安全性当然也比ASP高。说PHP不安全的,完全是高端黑,还来个“不争的事实”,让人说什么都理亏的样子。
苦寒竹
苦寒竹
某女:你能让这个论坛的人都吵起来,我就跟你约会。
某程序猿:PHP是最好的语言!
某论坛炸锅了,各种吵架。。。
某女:服了你了,我们走吧。
某程序猿:今天不行,我一定要说服他们,PHP必须是最好的语言。
赵亮-碧海情天
赵亮-碧海情天
别的不说了,拿“3.PHP 是不安全的”这一节为例,翻译不当甚至严重不通顺的地方很多,比如:

"Include通常是安全的,但是你需要要小心。如果它们的路径是动态生成的,对指令的透彻理解可以帮助你让代码更安全。".

正确的应该是:

”Include通常是安全的,但是如果它们的路径是动态生成的,你就需要小心了。对指令的透彻理解可以帮助你让代码更安全。"

建议翻译的时候不要完全依赖自动翻译工具,自己多花点时间检查校正一下结果。
Crazy罗小杰
Crazy罗小杰

引用来自“michealzh”的评论

引用来自“好大的凶兆”的评论

引用来自“michealzh”的评论

引用来自“好大的凶兆”的评论

最近这么多PHP的软文啊,毫无价值。。。
第一条,谁都知道PHP的面向对象很烂,非要狡辩。
比如:可以不生成对象就随意调用非静态方法而只是生成轻微的警告,接口约束不完整,可以跨过父类直接调用爷爷类的构造方法。
使用PHP开发桌面应用程序,更是一个笑话,找一个PHP开发的桌面程序我看看。
PHP运行效率高,更是笑话,那facebook还发明hip-hop,HVVM(?)干啥?都已经转成C++了,这个不是PHP的功劳吧?
PHP网站和应用是不安全的,这不争的事实

楼上好像很鄙视PHP语言啊,你说了那么大一堆只是为了证明它确实很垃圾,但是为什么腾讯百度新浪都使用呢,语言之间都有差异的,没必要非要去证明谁好谁不好,没有明确的界线不是吗...

难道百度用PHP做的搜索引擎?难道腾讯用PHP做的核心架构?一个百度的中级开发者跑到新浪,就成了首席架构师,用PHP做了微博前端。仅此而已。

哎 对于您的评论 我只能呵呵了....

呵呵。。。。
michealzh
michealzh

引用来自“好大的凶兆”的评论

引用来自“michealzh”的评论

引用来自“好大的凶兆”的评论

最近这么多PHP的软文啊,毫无价值。。。
第一条,谁都知道PHP的面向对象很烂,非要狡辩。
比如:可以不生成对象就随意调用非静态方法而只是生成轻微的警告,接口约束不完整,可以跨过父类直接调用爷爷类的构造方法。
使用PHP开发桌面应用程序,更是一个笑话,找一个PHP开发的桌面程序我看看。
PHP运行效率高,更是笑话,那facebook还发明hip-hop,HVVM(?)干啥?都已经转成C++了,这个不是PHP的功劳吧?
PHP网站和应用是不安全的,这不争的事实

楼上好像很鄙视PHP语言啊,你说了那么大一堆只是为了证明它确实很垃圾,但是为什么腾讯百度新浪都使用呢,语言之间都有差异的,没必要非要去证明谁好谁不好,没有明确的界线不是吗...

难道百度用PHP做的搜索引擎?难道腾讯用PHP做的核心架构?一个百度的中级开发者跑到新浪,就成了首席架构师,用PHP做了微博前端。仅此而已。

哎 对于您的评论 我只能呵呵了....
返回顶部
顶部