细数PHP程序的一些缺陷_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

细数PHP程序的一些缺陷

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:缺陷一些程序一个
黑客防线网安网讯:  PHP确实十分容易编写。但是PHP也有一些十分严重的缺陷。下面我会给出我的理由,为什么PHP不适合于比小型业余网站更大的网站。    1、对递归的不良支持    递归是一种函数调用自...
  PHP确实十分容易编写但是PHP也有一些十分严重的缺陷下面我会给出我的理由为什么PHP不适合于比小型业余网站更大的网站。
  
  1、对递归的不良支持
  
  递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。有一个使用递归的例子是快速排序(quicksort)。不幸的是PHP并不擅长递归。Zeev,一个PHP开发人员,说道:“PHP4.0(Zend)对密集数据使用了栈方式,而不是使用堆方式。也就是说它能容忍的递归函数的数量限制和其他语言比起来明显少。”见bug1901。这是一个很不好的借口。每一个编程语言都应该提供良好的递归支持。
  
  2、许多PHP模块都不是线程安全
  
  在几年前,Apache发布了Web服务器的2.0版。这个版本支持多线程模式,在这个模式下,软件一个一部分可以同时运行多个。PHP的发明者说PHP的核心是线程安全的,但是非核心模块不一定是。但是十次有九次,你想要在PHP脚本中使用这种模块,但这又使你的脚本不能合适Apache的多线程模式。这也是为什么PHP小组不推荐在Apache2的多线程模式下运行PHP。不良的多线程模式支持使PHP常被认为是Apache2依然不流行的原因之一。
  
  3、PHP由于商业原因而不健全
  
  通过使用缓存,PHP的性能可以陡增500%[见基准测试]。那么为什么缓存没有被构建在PHP中呢?因为Zend——PHP的制造者,它在销售自己的ZendAccelerator,所以当然,他们不想抛弃自己的商业产品这块肥肉。
  
  但是有另一个可选择的:APC.(Zend后来推出ZendOptimizer,免费的加速器——译者)
  
  4、没有命名空间
  
  设想某个人制作了一个PHP模块用来阅读文件。模块中一个函数叫做read。然后另一个人的模块可以读取网页的,同样包含一个函数read。然后我们就无法同时使用这两个模块了,因为PHP不知道你要用哪个函数。但是有一个很简单的解决方法,那就是命名空间。曾经有人建议PHP5加入这个特性,但不幸的是他没有这么做。现在,没有命名空间,每个函数都必须加上模块名作为前缀,来避免名称冲突。这导致了函数名恐怖得长,例如xsl_xsltprocessor_transform_to_XML让代码难于书写和理解。
  
  5、不标准的日期格式字符
  
  很多程序员对日期格式字符都很熟悉,它是从UNIX和C语言中来的。其他一些编程语言采用了这个标准,但是很奇怪的,PHP有它自己的一套完全不兼容的日期格式字符。在C中,“%j”表示一年中的当天,在PHP中他表示一个月中的当天。然而使事情更混乱的是:Smarty(一个很流行的PHP模版引擎)的strftime函数和date_format函数,却使用了C/UNIX的格式化字符。
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17369-1.html
网站维护教程更新时间:2012-09-21 05:17:39  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer