今天做的一个小项目,由于服务器是混合的,(因为公司做PHP开发,已经有很多年了),有PHP4和PHP5的服务器,于是所有的代码
需要进行兼容,于是问题就来了,碰到了很多小问题,因为在PHP5版本中使用很流畅的服务器,在PHP4中出现了异常。尤其是对于数组的
一些函数。
比如:
(1)uasort,这个函数,在PHP4中也存在,可惜使用时候,总是提示错误:PHP4 Warning: uasort() [function.uasort]: Invalid comparison function,也找到了一些说明。最后放弃了使用该函数。 通过原始的赋值语句解决的。
$newArray[$value['id']] = array("title"=>$value['title'],"time"=>$value['time']); //最直接的方式是直接添加
(2)array_slice,这个函数。在PHP4中也存在,可惜
5.0.2 The optional preserve_keys parameter was added.
在截取原来的数组的时候,key值会被默认替换为0,1,2...
于是通过
注意这里的$i,需要放到foreach外面。
PHP4和PHP5的OO编程,也有不少差异,常见的问题主要是:
(1)在PHP4中没有默认的__construct函数,需要我们创建一个和类名完全一样的函数。
(2)不能使用private,对变量进行修饰,要像js一样的,使用var关键字进行修饰,
(3)function不能使用public限制范围。
(4)在php4中,对一个实例,进行了深度复制,你修改这个变量,另外一个不会变化,而在PHP5,是创建了
另外一个实例的指针,会同时被修改。