PHP - 如何重命名对象属性?

时间:2011-09-05 15:48:38

标签: php oop properties

我想知道如何在PHP中重命名对象属性,例如:

<?php
    $obj = new stdclass();
    $obj->a = 10;  // will be renamed
    $obj->b = $obj->a; // rename "a" to "b", somehow!
    unset($obj->a); // remove the original one

它在PHP5.3中不起作用(不知道早期版本),因为$obj->a的引用会被$obj->b分配给$obj->a,因此取消设置$obj->b, {{1}}将为空。有什么想法吗?

3 个答案:

答案 0 :(得分:6)

您的代码正常运行,执行后$obj->b10http://codepad.org/QnXvueic

当您取消设置$obj->a时,只需删除该属性,就不要触及该值。如果该值由另一个变量使用,则它在订单变量中保持不变。

答案 1 :(得分:0)

<?php     
$obj = new stdclass();
$obj->a = 10;  // will be renamed
$obj->b = $obj->a; // rename "a" to "b", somehow!
unset($obj->a); // remove the original one
var_dump($obj->b); //10 Works fine

答案 2 :(得分:-1)

使用对象克隆,参考:PHP __clone() documentation