浅谈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下使用以下代码连接并测试
Apr 09 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
php cookie名使用点号(句号)会被转换
Oct 23 PHP
symfony2.4的twig中date用法分析
Mar 18 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 PHP
PHP设计模式之装饰器模式定义与用法详解
Apr 02 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
Aug 16 PHP
php实现在线考试系统【附源码】
Sep 18 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 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
建立动态的WML站点(二)
2006/10/09 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
JavaScript数值类型知识汇总
2019/11/17 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
Python数据结构之图的应用示例
2018/05/11 Python
Python将string转换到float的实例方法
2019/07/29 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
香港交友网站:be2香港
2018/07/22 全球购物
如何手工释放资源
2013/12/15 面试题
保荐人的岗位职责
2013/11/19 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
教你打造完美的创业计划书
2014/01/06 职场文书
安全生产先进个人材料
2014/02/06 职场文书
办公室禁烟通知
2015/04/23 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python