谈谈关于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获得当前的脚本网址
Dec 10 PHP
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 PHP
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
php模拟post提交数据的方法
Feb 12 PHP
PHP使用array_merge重新排列数组下标的方法
Jul 22 PHP
PHP实现的简单缓存类
Jul 29 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
PHP 类与构造函数解析
Feb 06 PHP
PHP守护进程化在C和PHP环境下的实现
Nov 21 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
Python中使用SAX解析xml实例
2014/11/21 Python
Python中字典和集合学习小结
2017/07/07 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
教师党性分析材料
2014/02/04 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
js 实现验证码输入框示例详解
2022/09/23 Javascript