Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-如何重命名对象属性?_Php_Oop_Properties - Fatal编程技术网

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

PHP-如何重命名对象属性?,php,oop,properties,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 您的代码工作正常,$obj->b在执行后为10: 当您取消设置$obj->a时

我想知道如何在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

您的代码工作正常,
$obj->b
在执行后为
10


当您取消设置
$obj->a
时,您只需删除该属性,而不触及该值。如果该值被其他变量使用,则在order变量中保持不变。

使用对象克隆,参考:

这很方便。在执行代码$obj:object(stdClass)#1(1){[“b”]=>int(10)}之后,它就不必再进行反射和其他类似于其他语言的奇特操作了。有关编写变量和引用的PHP句柄的详细信息,请参阅……这不是重命名,而是复制。它将占用->a的两倍内存。仅仅说“重命名”对处理大型数据集的开发人员来说通常只是一件重要的事情。
<?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