PHP-как переименовать свойство объекта?

интересно, как я могу переименовать свойство объекта в 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, (donno о более ранних версиях), так как будет ссылка $obj->a назначена $obj->b и так, расстроив $obj->a, стоимостью $obj->b будет null. Есть идеи, пожалуйста?

3 ответов


ваш код работает правильно, $obj->b is 10 после выполнения:http://codepad.org/QnXvueic

когда вы unset $obj->a, вы просто удалите свойство, вы не касаетесь значения. Если значение используется другой переменной,оно остается нетронутым в переменной order.


<?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

использовать объект clonning, ссылка : PHP _ _ clone () documentation