PHP语言的一些缺陷
1. 对递归的不良支持
递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。有一个使用递归的例子是快速排序(quicksort)。不幸的是,PHP并不擅长递归。Zeev,一个PHP开发人员,说道:“PHP 4.0(Zend)对密集数据使用了栈方式,而不是使用堆方式。也就是说它能容忍的递归函数的数量限制和其他语言比起来明显少。”见bug 1901。这是一个很不好的借口。每一个编程语言都应该提供良好的递归支持。
2. 许多PHP模块都不是线程安全的
在几年前,Apache发布了Web服务器的2.0版。这个版本支持多线程模式,在这个模式下,软件一个一部分可以同时运行多个。PHP的发明者说PHP的核心是线程安全的,但是非核心模块不一定是。但是十次有九次,你想要在PHP脚本中使用这种模块,但这又使你的脚本不能合适Apache的多线程模式。这也是为什么PHP小组不推荐在Apache 2 的多线程模式下运行PHP。不良的多线程模式支持使PHP常被认为是Apache 2依然不流行的原因之一。
请阅读这篇讨论: Slashdot: Sites Rejecting Apache 2?.
3. PHP 由于商业原因而不健全
通过使用缓存,PHP的性能可以陡增500%[见基准测试]。那么为什么缓存没有被构建在PHP中呢?因为Zend——PHP的制造者,它在销售自己的Zend Accelerator,所以当然,他们不想抛弃自己的商业产品这块肥肉。
但是有另一个可选择的: APC. (Zend后来推出Zend Optimizer,免费的加速器——译者)
4. 没有命名空间
设想某个人制作了一个PHP模块用来阅读文件。模块中一个函数叫做read。然后另一个人的模块可以读取网页的,同样包含一个函数read。然后我们就无法同时使用这两个模块了,因为PHP不知道你要用哪个函数。
但是有一个很简单的解决方法,那就是命名空间。曾经有人建议PHP5加入这个特性,但不幸得是他没有这么做。现在,没有命名空间,每个函数都必须加上模块名作为前缀,来避免名称冲突。这导致了函数名恐怖得长,例如xsl_xsltprocessor_transform_to_xml让代码难于书写和理解。
5. 不标准的日期格式字符
很多程序员对 日期格式字符 都很熟悉,它是从UNIX和C语言中来的。其他一些编程语言采用了这个标准,但是很奇怪的,PHP有它自己的一套完全不兼容的日期格式字符。在C中,“%j”表示一年中的当天,在PHP中他表示一个月中的当天。然而使事情更混乱的是:Smarty (一个很流行的PHP模版引擎)的 strftime 函数和 date_format 函数,
相关文档:
以前分析xdebug用的是(wincachegrind)http://sourceforge.net/projects/wincachegrind/
现在直接安装webgrind来调试速度会更好
http://xdebug.org/
下载地址:
Source:
xdebug 2.0.3
Windows modules:
PHP 5.1.2-5.1.7
PHP 5.2.1-5.2.6
PHP 5.3.0dev
windows
编辑php.ini,先注释掉zend:
[Zend]
;zend ......
1.PHP历史
a.1995年由Lerdorf创建,当时他是为了创建一个访问计算器
b.1997年11月发行PHP 2.0,称为PHP-FI(个人主页-表单解释器)
c.1998年6月发行PHP3.0,名称由Personal Home Page 变成 HyperText Preprocessor(超文本预处理器)
d.2000年5月PHP4发布
e.PHP5发布
2.php4,php5特性
3 ......
【PHP系列教程】是根据现有《PHP Manual》进行收集和整理所得,所有代码都已经测试通过。在转载过程中,请注明出处。
一、预备知识:PHP环境的搭建
环境的搭建在前面已经给出了详细的说明,网址为:http://blog.csdn.net/rocket5725/archive/2009/12/28/5090489.aspx。
二、第一个PHP页面
在WEB服务器根目录下D:\Progra ......
在windows下安装image magic 的php扩展 imagick, 首先需要下载php_imagick.dll文件.这个dll文件非常关键.
如果下载了错误的php_imagick.dll.安装就会失败.我就是下载了N个这样的dll文件都未能安装成功.最后终于给我找到正确的dll文件了
下载地址:http://valokuva.org/outside-blog-content/imagick-windows-builds ......
在php中计算时间差有时候是件麻烦的事!不过只要你掌握了日期时间函数的用法那这些也就变的简单了:
一个简单的例子就是计算借书的天数,这需要php根据每天的日期进行计算,下面就来谈谈实现这种日期计算的几种方法:
(1) 如果有数据库就很容易了!若是MSSQL可以使用触发器!用专门计算日期差的函数datediff()便可 ......