关于PHP的十大误解 你中了几个?
作为开发人员,你常常会在网上看到不使用XX的理由之类的新闻。而作为最受欢迎的开源服务器端脚本语言,PHP也难逃这样的命运。殊不知,金无足赤、人无完人,再流行的语言都会存在缺点,或者是误解,因此,有些开发者可能就因为这些,就对它敬而远之,这不实在可惜了吗?
本文作者总结了人们对PHP的十大误解,并且进行澄清,有些误解值得深思,而有些又实在是捕风捉影。无论怎样,让我们一起来看下这些误解。
1. PHP是一门面向对象语言,但不是基于OOPS
这是完全不正确的理解,尤其是Java程序员,他们认为PHP不是基于OOPS;但他们会发现许多面向对象的特征,比如,接口、方法、抽象对象等。说实话,初始版的PHP没有太多的面向对象功能,但PHP 5添加很多面向对象技术。更重要的是,你也许会好奇,为什么Bootstrap代码在PHP里会变得那么简单,这个得归功于PHP与OO的结合。
2. PHP无法实现特定的功能
这个误解听起来比较模糊,但有许多开发者认为PHP不能实现内存访问等其他功能。但事实是,PHP是一门可扩展的语言,你只需用C或C++编写一个扩展,进行集成就OK了。或者,你无需创建,网上已经有成千上百个扩展可供使用,你可以根据需要,直接拿来使用。
3. PHP不安全
既然你认为它是不安全的,那为何不为它编写安全的代码呢。我承认,PHP里是有大量不安全的代码,但作为程序员,我们应该尽量编写可靠安全的代码。
如果拿PHP与.NET进行比较,PHP肯定是失败的。但如果你是一个技术娴熟的程序员,你无需安全“帮助”。包括日常的安全问题,但如果他们的路径是动态生成的,那你就得当心了。当然,如果你精通所有的指令,它或许会变的更安全。
4.不适合做大型应用程序
一门语言之所以能用来构建大而复杂的应用,其自身要具有一定的可靠性和高性能,而可扩展的PHP并不符合。但是,如果你设计和开发的应用程序架构很稳定,那应用程序的性能和扩展又会有什么问题呢?
事实是,一些知名的网站都是采用PHP设计的,比如Facebook、Wikipedia、和Yahoo!等,它们都能工作的很好。
5.PHP只能用于网站开发
的确,使用PHP进行网站开发是很普遍的。但命令行接口(CLI:Command Line Interface)可以让应用程序运行在非Web服务器上。
虽然有些应用程序对CPU的要求很高,但通过执行PHP CLI,仍然可以采用PHP进行开发和运行。更重要的是,如果你想使用PHP开发桌面应用程序,只需使用Windows特定扩展即可搞定。
6.开发过程缓慢
对于这样的误解,我实在不知道是从哪里传出来的。有可能你编写的PHP代码很凌乱、并且里面充斥着大量的MySQL语句(它们虽然很有意义,但真不应该放在那里)。而事实上,PHP有大量的框架可供开发者使用,合理使用它们会达到事半功倍的效果,大大缩减开发时间。所以,不要抱怨慢。
7.专业开发者不使用PHP
关于这个误解,坊间有各种各样的说法,比如PHP对初学者是小菜一碟,它是为那些不想认真对待开发的人准备的等等。当然,不得不承认,PHP在某些方面的确没有什么意义,但是对于这样的误解,真的是可笑之至。如果这里有许多Web应用程序都是使用PHP开发,那么想象下,一向严谨的开发商却对PHP敬而远之,乃是完全错误的。
8.性能问题
这个是技巧问题,而不是误解。任何事情都有好有坏。性能优化也一直是开发者们争先讨论的话题。事实上,对于性能低下的应用,里面可能充斥着大量的垃圾代码,比如隐式转换、无用的模块、操作法缺乏重载等,这些都会影响到PHP应用程序的性能。但这最终要取决于你如何使用这门语言去创建一个稳定快速的应用程序。
9.便宜的应用程序意味着质量不高
在开源逐渐成为主流的市场环境下,免费、开源是PHP最大的优势。这意味着大多数拥有专业知识的开发人员都可以提供开发服务,并且还可以为客户节省成本。但这并不意味着质量就有问题,同样也可以开发出高性能的应用程序。
10.PHP被高估了
好吧,这或许只是你的个人想法,大部分的PHP程序员是不会这么想的。
写在最后
随着语言的不断发展和壮大,各种误解也会接踵而来,但无论如何,一些不实的谣言都会不攻而破。常言道,实践是检验真理的唯一标准,所以,在选择相信或不相信之前,最好亲自试验确认下。
英文来源:Bestdesigntuts
关于PHP的十大误解 你中了几个?的更多相关文章
- Python不能用于大型项目?人们对Python的十大误解
Python 类型系统的特点是拥有强大.灵活的类型操作. 维基百科上对此作出的阐述. 而存在一个不争而有趣的事实是, Python 是比Java更加强类型的. Java 对于原生类型和对象区分了类型系 ...
- 常见的Hadoop十大应用误解
常见的Hadoop十大应用误解 1. (误解) Hadoop什么都可以做 (正解) 当一个新技术出来时,我们都会去思考它在各个不同产业的应用,而对于平台的新技术来说,我们思考之后常会出现 ...
- 人们对Python在企业级开发中的10大误解
From : 人们对Python在企业级开发中的10大误解 在PayPal的编程文化中存在着大量的语言多元化.除了长期流行的C++和Java,越来越多的团队选择JavaScript和Scala,Bra ...
- 【十大经典数据挖掘算法】PageRank
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 我特地把PageRank作为[十大经 ...
- 【十大经典数据挖掘算法】EM
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 极大似然 极大似然(Maxim ...
- 【十大经典数据挖掘算法】AdaBoost
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 集成学习 集成学习(ensem ...
- 【十大经典数据挖掘算法】SVM
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART SVM(Support Vector ...
- 微信小程序与传统APP十大优劣对比
随着微信公众平台的开放,微信端小程序涌现市场,带来很很多便利和简单的原生操作,询:微信端小程序是否会替代传统的APP应用?两者的优劣如何?我们一起来看看传统APP与微信端小程序十大优劣对比 ...
- 转:IT公司的十大内耗,别说你公司没有!
这篇文章是以前看到的,觉得写得非常好,转载在自己BLOG作为记录.原文:http://www.pmtoo.com/news/2015/0108/7260.html. 当企业发展到一定时期时,会不可避免 ...
随机推荐
- 将C# dataTable 做为参数传入到存储过程
1.list转换为DataTable(如果有需要) public static DataTable ListToDataTable<T>(List<T> entitys) { ...
- sql 查询练习
1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名name kecheng fenshu 张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100 ...
- Sublime Text 前端插件推荐
html/CSS快速编辑 --- Emment HTML CSS JS 美化插件 --- HTML/CSS/JS Prettyfy MarkDown 预览 --- MarkDown Preview J ...
- aix 安装redis
下载最新rpm安装包 http://www.perzl.org/aix/index.php?n=Main.Redis # uname -aAIX rhjf 1 6 00C5CC964C00# pwd/ ...
- nodejs npm install全局安装和本地安装的区别
npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如:代码如下:复制代码npm install # 本地安装npm install - ...
- PHP定时执行任务/Cron Job
对于PHP本身并没有一套解决方案来执行定时任务,不过是借助sleep函数完成的.这种方就是要提前做一些配置,如实现过程: ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执 ...
- C++ 编写 CorelDRAW CPG 插件例子(1)—WelcomeScreen
据我所知,这是国外论坛最早的一个例子,原贴在此:http://forum.oberonplace.com/showthread.php?t=1880&highlight=Plugins 贴上主 ...
- 《C和指针》 读书笔记 -- 第7章 函数
1.当程序调用一个无法见到原型的函数时,编译器便认为该函数返回一个整型值.如果这个值实际上是非整型值时,还得执行类型转换,所以函数原型声明有时很重要. 2.值的类型并不是值的内在本质,而是取决于它被使 ...
- c#中sqlhelper类的编写(一)
在.net平台的项目开发中,凡是用到数据库交互的,都有必要了解SqlHelper类的原理. 步骤一: 我就拿WPF项目开发作为例子.首先要新建一个App.config(应用程序配置文件).注意,在VS ...
- asp.net 运行时, 报控件不存在
Asp.net 运行时,报控件不存在,但系统中确实加入了控件z, 但是生成网站的时候,报控件不存在,输入代码的时候,this.edtxx.Text 确实可以输入 原因: 系统修改的时候,作了一个备份, ...