浅谈php的优缺点


Posted in PHP onJuly 14, 2015

一、优点

1. 跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)结合,或者数据应用够大可以考虑换 PostgreSQL或者Oracle,支持N种数据库。(N >= 10)

2. 语法简单,如果有学习C和Perl的很容易上手,并且跟ASP有部分类似。有成熟的开发工具,比如NuPHPed,或者Zend Studio等等,再Linux平台下可以使用Eclipse等等。

3. 目前主流技术都支持,比如WebService、Ajax、XML等等,足够应用。

4. 有比较完整的支持,比如使用ADODB或者PEAR::DB做数据库抽象层,用Smarty或者smart template做模板层,如果是PHP 5.1的话,还能够使用PDO(PHP Data Object)来访问数据库。

5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持类似ASP.net的事件驱动的框架:Prado,支持类似Ruby On Rails的快速开发的框架:Cake等等,足够满足你的应用需求。

6. PHP 5已经有成熟的面向对象体系,能够适应基本的面向对象要求。适合开发大型项目。

7. 有成熟的社区来支持PHP的开发。

8. 目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,很多选用PHP来作为他们的开发语言,所以大型门户都能够选用它,我想足够能够你的使用了。

9. 有很多开源的框架或开源的系统可以使用,比如比较知名的开源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,开源论坛有Discuz!、Phpwind等,开源博客 WordPress,开源网店系统如Ecshop、ShopEx等,开源的SNS系统如UCHome、ThinkSNS等。

10.使用成本低  (linux apache mysql php内核)

二、缺点

1.对多线程支持不太好,大多数时候我们只能简单的模拟去实现的。

2.语法不太严谨,比如变量不需要定义就可以使用,在c,java,c++中变量是必须先定义以后才可以使用的。

3.PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java Bean的scope有四种有效值:Page、Application、Session、Request,分别对应页面、程序、会话、请求四种生存期。但在PHP中,只有Page一种生存期。

PHP 相关文章推荐
php多维数组去掉重复值示例分享
Mar 02 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
php实现可逆加密的方法
Aug 11 PHP
PHP工程师VIM配置分享
Dec 15 PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 PHP
php代码架构的八点注意事项
Jan 25 PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 PHP
PHP中list方法用法示例
Dec 01 PHP
PHP二维数组去重算法
Dec 17 PHP
php实现简单加入购物车功能
Mar 07 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 PHP
使用URL传输SESSION信息
Jul 14 #PHP
利用“多说”制作留言板、评论系统
Jul 14 #PHP
php生成数字字母的验证码图片
Jul 14 #PHP
php算法实例分享
Jul 14 #PHP
php根据生日计算年龄的方法
Jul 13 #PHP
php获取英文姓名首字母的方法
Jul 13 #PHP
php根据日期显示所在星座的方法
Jul 13 #PHP
You might like
用PHP产生动态的影像图
2006/10/09 PHP
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
YII中assets的使用示例
2014/07/31 PHP
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
克隆javascript对象的三个方法小结
2011/01/12 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
python基础教程之缩进介绍
2014/08/29 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
python实现神经网络感知器算法
2017/12/20 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
Django celery异步任务实现代码示例
2020/11/26 Python
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
2014年教师个人工作总结
2014/11/10 职场文书
酒店财务经理岗位职责
2015/04/08 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
MySQL8.0的WITH查询详情
2021/08/30 MySQL