谈谈关于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 数组使用详解 推荐
Jun 02 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
分享一个超好用的php header下载函数
Jan 31 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
Symfony2之session与cookie用法小结
Mar 18 PHP
Yii2单元测试用法示例
Nov 12 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 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
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
JavaScript 学习笔记(十五)
2010/01/28 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
python 美化输出信息的实例
2018/10/15 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
kali中python版本的切换方法
2019/07/11 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
wxpython布局的实现方法
2019/11/01 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
通俗讲解python 装饰器
2020/09/07 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
应届生求职信
2014/05/31 职场文书
辅导员学期工作总结
2015/08/14 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js