php5有Clone语句,而PHP4没有.以前php4要实现科隆一个object,用的是函数方法.如果你以前写的PHP4有用到Clone 类的方法,再跑到PHP5下面有可能出现错误.如果你现在写的php5用到clone.哪么在php4是完全不能用的.我试着写了下面的一个转换跑在PHP4和PHP5之间.用的是eval() function.
测试代码:
<?php
//MyClass 有一个变量a 和一个内建方法
class MyClass
{
var $a;
function test($a)
{
$this->a = $a;
}
}
//这是php4的克隆方法
function php4clone($tmp_obj)
{
return $tmp_obj;
}
//一个判断php的版本调用不同的Clone
if(version_compare(phpversion(),'5.0.1')< 0)
{
eval('
$obj = new MyClass;
$obj_clone = php4clone($obj);
$obj->test("Hello");
$obj_clone->test("World");
echo $obj->a;
echo $obj_clone->a;
echo "PHP".phpversion();
');
}else{
eval('
$obj = new MyClass;
$obj_clone = clone($obj);
$obj->test("Hello");
$obj_clone->test("World");
echo $obj->a;
echo $obj_clone->a;
echo "PHP".phpversion();
');
}
?>
ps:4.3.8 与php5.01测试通过.关于不同php版本兼容.如果还有什么更好的方法.希望能更多讨论.
打印 | 张贴于 2004-09-26 11:30:00 | Tag:php


留言反馈
一下子感觉时间好快啊~~~~~~~~
偶的目的被你误解了.
如果你将你的blog同时分享到php的社区, 那么会有更多的人和你交流和讨论.
建议发到类似www.phpe.net的网站上比较好