浅谈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 相关文章推荐
最小化数据传输――在客户端存储数据
Oct 09 PHP
php中的时间显示
Jan 18 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
处理单名多值表单的详解
Jun 08 PHP
分享PHP header函数使用教程
Sep 05 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
Jan 13 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
Oct 08 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
PHP简单装饰器模式实现与用法示例
Jun 22 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 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
Angular网络请求的封装方法
2018/05/22 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
python实现web方式logview的方法
2015/08/10 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
python获取代理IP的实例分享
2018/05/07 Python
python pyheatmap包绘制热力图
2018/11/09 Python
Python对列表的操作知识点详解
2019/08/20 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
专业毕业生个性的自我评价
2013/10/03 职场文书
历史系毕业生自荐信
2013/10/28 职场文书
会计专业自荐信
2013/12/02 职场文书
开学典礼决心书
2014/03/11 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
银行求职信怎么写
2014/05/26 职场文书
天坛导游词
2015/02/02 职场文书
叶问观后感
2015/06/15 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
PHP中strval()函数实例用法
2021/06/07 PHP
redis cluster支持pipeline的实现思路
2021/06/23 Redis
mysql查询结果实现多列拼接查询
2022/04/03 MySQL