浅谈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 相关文章推荐
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
Laravel 5.3 学习笔记之 配置
Aug 28 PHP
thinkPHP线上自动加载异常与修复方法实例分析
Dec 01 PHP
php字符集转换
Jan 23 PHP
PHP的自定义模板引擎
Mar 24 PHP
php写app用的框架整理
Sep 29 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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与XML联手进行网站编程代码实例
2008/07/10 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
tornado捕获和处理404错误的方法
2014/02/26 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python测试人员需要掌握的知识
2018/02/08 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
中国医药集团国药在线:国药网
2017/02/06 全球购物
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
什么是测试驱动开发(TDD)
2012/02/15 面试题
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
2014年安全员工作总结
2014/11/13 职场文书
售后服务承诺函格式
2015/01/21 职场文书
三峡导游词
2015/01/31 职场文书
电力工程合作意向书
2015/05/11 职场文书
小学信息技术教学反思
2016/02/16 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL