谈谈关于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 相关文章推荐
人大复印资料处理程序_查询篇
Oct 09 PHP
PHP的FTP学习(四)
Oct 09 PHP
php mssql 数据库分页SQL语句
Dec 16 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
PHP获取用户访问IP地址的5种方法
May 16 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
Laravel框架使用Redis的方法详解
May 30 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 PHP
thinkphp5实现微信扫码支付
Dec 23 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快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
php制作动态随机验证码
2015/02/12 PHP
php中使用GD库做验证码
2016/03/31 PHP
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
js性能优化技巧
2015/11/29 Javascript
理解javascript封装
2016/02/23 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
Android面试题附答案
2014/12/08 面试题
结婚典礼证婚词
2014/01/11 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
暑期学习心得体会
2014/09/02 职场文书
生日祝酒词大全
2015/08/10 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android