谈谈关于php的优点与缺点


Posted in PHP onApril 11, 2013

php优点

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等。

缺点

1.对多线程支持不太好,大多数时候我们只能简单的模拟去实现的。

2.语法不太严谨,比如变量不需要定义就可以使用,在c,java,c++中变量是必须先定义以后才可以使用的。

3.也许有经验的PHP程序员最感到痛苦的地方是PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java Bean的scope有四种有效值:Page、Application、Session、Request,分别对应页面、程序、会话、请求四种生存期。但在PHP中,只有Page一种生存期。
PHP 相关文章推荐
php 购物车的例子
May 04 PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
php页面防重复提交方法总结
Nov 25 PHP
destoon复制新模块的方法
Jun 21 PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 PHP
php输入流php://input使用浅析
Sep 02 PHP
php关闭warning问题的解决方法
May 17 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
PDO::prepare讲解
Jan 29 PHP
stripos函数知识点实例分享
Feb 11 PHP
如何用PHP实现插入排序?
Apr 10 #PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 #PHP
克隆一个新项目的快捷方式
Apr 10 #PHP
str_replace只替换一次字符串的方法
Apr 09 #PHP
apache和php之间协同工作的配置经验分享
Apr 08 #PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 #PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
Apr 08 #PHP
You might like
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
PHP多文件上传类实例
2015/03/07 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
Python 含参构造函数实例详解
2017/05/25 Python
Python 加密的实例详解
2017/10/09 Python
Django中间件实现拦截器的方法
2018/06/01 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
Python中的引用知识点总结
2019/05/20 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
二手房买卖协议书
2014/04/10 职场文书
JVM之方法返回地址详解
2022/02/28 Java/Android