PHP对象传递与正则表达式全解析
1. PHP对象传递差异
在PHP中,PHP 4和PHP 5在对象传递和赋值方面存在显著差异。
在PHP 4里,对象以值的形式在函数间传递。以下代码可用于测试这一过程:
class PassObj {
function PassObj( $item ) {
$item->name=”harry”;
}
}
class Item {
var $name = “bob”;
}
$item = new Item();
$pass = new PassObj( $item );
print $item->name;
上述代码中, PassObj 类的构造函数接收一个 Item 对象,并修改其 $name 属性。若在PHP 4中运行此代码,传递给 PassObj 构造函数的是 Item 对象的副本,原始对象不受影响,脚本将输出 bob ,即 Item 对象的默认 $name 值。
而在PHP 5中,对象以引用的形式传递和赋值。运行上述代码,脚本将输出 harry 。PHP 5的这种行为更符合面向对象语言的特性。
若要在PHP 4中强制以引用方式传递和赋值,需使用 & 字符
超级会员免费看
订阅专栏 解锁全文
1186

被折叠的 条评论
为什么被折叠?



