谈谈关于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数组函数序列之array_pop() - 删除数组中的最后一个元素
Nov 07 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
php生成缩略图填充白边(等比缩略图方案)
Dec 25 PHP
php中fgetcsv()函数用法实例
Nov 28 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
PHP使用ActiveMQ实例
Feb 05 PHP
PHP模版引擎原理、定义与用法实例
Mar 29 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 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 sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
JavaScript中Function详解
2015/02/27 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
JavaScript实现单点登录的示例
2020/09/23 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python用for循环实现九九乘法表
2018/05/31 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
python 实现目录复制的三种小结
2019/12/04 Python
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
气象学专业个人求职信
2014/03/15 职场文书
大学生评语大全
2014/04/18 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL