浅谈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+MSSQL分页的例子
Oct 09 PHP
php绝对路径与相对路径之间关系的的分析
Mar 03 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
PHP简单实现文本计数器的方法
Apr 28 PHP
PHP实现微信图片上传到服务器的方法示例
Jun 29 PHP
一个实用的php验证码类
Jul 06 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 PHP
Yii2.0框架模型多表关联查询示例
Jul 18 PHP
php-7.3.6 编译安装过程
Feb 11 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手册及PHP编程标准
2006/12/17 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
Vue 2.0学习笔记之Vue中的computed属性
2017/10/16 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
入党申请书自我鉴定
2013/10/12 职场文书
高一家长会邀请函
2014/01/12 职场文书
卫校中专生的自我评价
2014/01/15 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书