浅谈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 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
Oct 23 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 PHP
php实现MySQL数据库备份与还原类实例
Dec 09 PHP
PHP实现服务器状态监控的方法
Dec 09 PHP
php实现CSV文件导入和导出
Oct 24 PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 PHP
轻松实现php文件上传功能
Feb 17 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 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中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
一个JavaScript继承的实现
2006/10/24 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
python实现倒计时的示例
2014/02/14 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
python抓取京东小米8手机配置信息
2018/11/13 Python
Python中url标签使用知识点总结
2020/01/16 Python
python中os.remove()用法及注意事项
2021/01/31 Python
诚信考试承诺书
2014/03/27 职场文书
十周年庆典策划方案
2014/06/03 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
2014年科技工作总结
2014/11/26 职场文书
高效课堂教学反思
2016/02/24 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
Jsonp劫持学习
2021/04/01 PHP
用Python selenium实现淘宝抢单机器人
2021/06/18 Python