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