伊缘网 首页
 设为首页    加入收藏    用户帮助    联系我们 
网站首页 新闻动态 技术文章 Flash整站 精彩网文 资源下载 视频教程
网上商城 Flash动漫 网页特效 酷站欣赏 BBS论坛 在线工具 留言本站
  F-CMS Flash CMS   CXT Flash Cms   SXW Flash CMS   EXW Flash Cms   
  您的位置: 伊缘网 >> 网络学堂 >> 建站技术 >> PHP 编程
 阅读文章

对PHP缺点的认识

  文章作者:佚名来源:星恋伊缘网浏览次数:4200字体:
 阅读权限:游客身份阅读花费:0 E币添加时间:2007-7-22 下午 11:26:39提交会员:esing
皮具制造生产企业,专注时尚包包
提示:登陆本站会员系统后,网站系统将不显示任何广告!如果您还不是本站会员请注册本站会员,谢谢您对本站的关注!
   虽然作者非常欣赏PHP(否则也就不会有这本书),但是不可否认,PHP的缺点也是相当明显的。

      也许有经验的PHP程序员最感到痛苦的地方是PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java Bean的scope有四种有效值:Page、Application、Session、Request,分别对应页面、程序、会话、请求四种生存期。但在PHP中,只有Page一种生存期。

     在PHP中,如果需要在页面之间共享数据,需要手动将变量保存到预定义的全局变量$GLOBALS或$_SESSION中。PHP会将这些变量保存在某个文件中,以便下次执行页面时读取。但是,这种方式存在着极大的限制,除了效率的低下外,它还无法保存引用外部资源的变量,例如文件、Socket、数据库连接等,而正是这些资源最需要被缓存。

     这导致了许多高级的模式和技术无法使用。例如,即使是最简单的Singleton模式也无法在PHP中被应用。虽然可以使用PHP写出Singleton的代码,但是由于PHP中没有真正全局的static变量,所以每次页面被执行时,都会重新建立新的对象,这样也就完全失去了Singleton的意义。这也导致复杂的OR Mapping技术难以应用,因为没有对象的缓存机制,OR Mapping的开销已经使这种技术失去了意义。这又导致传统的MVC架构在PHP中无法实现。

     关于PHP的这一弊病和相关的解决技巧,在下文还会提到。
      PHP其他一些为人垢病的地方包括:

      缺乏对名字空间的支持。名字空间(namespace)是开发大型应用程序时非常有用的特性,它能够代码中的名字分配到不同的空间中,从而避免它们互相冲突。如果没有名字空间,在使用第三方库的时候,很容易遇到名字冲突的问题,即不同的类、接口、函数或全局变量使用了同样的名字。C++/Java/C#等语言都支持名字空间。名字空间本来是PHP5开发计划的一部分,但是由于这一特征对性能造成了明显的影响,最终在发布版中被取消了。因此,直到现在,PHP程序员们仍然不得不使用非常长的名字(诸如Canata_Util_ConvertHtml())来避免名字冲突。

      缺乏对Unicode的支持。PHP5 仍然没有添加对Unicode的内置支持,仅仅是增加了一些多字节字符串(Multibyte String)处理函数,而这些函数需要在编译时手工指定才能够打开。据说Unicode将在PHP 6中得到完整的支持。

      缺乏统一的命名规范。和Java不同,PHP没有统一的命名规范。因此,PHP程序员随心所欲地使用他愿意使用的任何命名规范。象converttohtml()、ConvertToHtml()和convert_to_html()这样的命名规范往往同时被使用。对于程序员自己来说,只要坚持使用一种命名规范,倒不是什么太大的问题;但是如果需要用到第三方库的时候,这种经验就不那么令人愉快了。

     缺乏标准框架。到目前为止,PHP社区没有出现一套统一的、完整的Web开发框架,象Struts或Ruby on Rails那样。PHP程序员只有可复用的函数和类。这也许要部分地归因于PHP本身的特性,由于它无法实现有效的缓存机制,因此也无法构建传统的MVC框架。


  Tags:  PHP  缺点  认识  
·上篇文章:Windows系统中须禁止的十大服务
·下篇文章:千千静听使用技巧
复制 】 【 打印
 相关文章
·百度资料: 对PHP缺点的认识
·在IIS运行PHP和MySQL 2007-11-14 上午 12:22:21
·常用的PHP正则表达式 2007-11-14 上午 12:12:46
·PHP的变量类型 2007-6-30 下午 11:14:08
·用PHP实现在线发邮件 2007-6-30 下午 11:12:59
·PHP的基本语法 2007-6-21 上午 02:44:01
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们尽快予以更正,谢谢。
 相关评论
【文章评论已关闭】
伊缘网