浅谈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 相关文章推荐
常见的PHP五种设计模式小结
Mar 23 PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
php学习笔记之基础知识
Nov 08 PHP
phpstorm配置Xdebug进行调试PHP教程
Dec 01 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
May 08 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
php使用imagecopymerge()函数创建半透明水印
Jan 25 PHP
浅析PHP开发规范
Feb 05 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生成静态页面详解
2006/12/05 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
浅谈angular.copy() 深拷贝
2017/09/14 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
Python字典底层实现原理详解
2019/12/18 Python
django 取消csrf限制的实例
2020/03/13 Python
七年级历史教学反思
2014/02/05 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
应届生求职信
2014/05/31 职场文书
服装设计专业自荐信
2014/06/17 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
民事上诉状范文
2015/05/22 职场文书
狂人日记读书笔记
2015/06/30 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
关于 Python json中load和loads区别
2021/11/07 Python
详解JS数组方法
2021/11/20 Javascript
vue实现Toast组件轻提示
2022/04/10 Vue.js