浅谈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 相关文章推荐
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
在PWS上安装PHP4.0正式版
Oct 09 PHP
PHP 命名空间实例说明
Jan 27 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
深入PHP数据加密详解
Jun 18 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
windows下配置apache+php+mysql时出现问题的处理方法
Jun 20 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
PHP解决高并发问题
Apr 01 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
swfupload 多文件上传实现代码
2008/08/27 PHP
PHP源码之explode使用说明
2011/08/05 PHP
使用PHP计算两个路径的相对路径
2013/06/14 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
php session的锁和并发
2016/01/22 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
IE8下String的Trim()方法失效的解决方法
2013/11/08 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
python返回昨天日期的方法
2015/05/13 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
Python引用计数操作示例
2018/08/23 Python
python如何统计代码运行的时长
2019/07/24 Python
python scatter函数用法实例详解
2020/02/11 Python
django orm模块中的 is_delete用法
2020/05/20 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
银行演讲稿范文
2014/01/03 职场文书
体育专业求职信
2014/07/16 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
检举信的写法
2019/04/10 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
Python数据处理的三个实用技巧分享
2022/04/01 Python
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis