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

7 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
Run Code Online (Sandbox Code Playgroud)

它在PHP5.3中不起作用(不知道早期版本),因为会有一个$obj->a分配的引用,$obj->b因此通过取消设置$obj->a,值$obj->b将为null.有什么想法吗?

Arn*_*anc 6

您的代码正常工作,$obj->b10执行后:http://codepad.org/QnXvueic

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