2011-09-05 9 views
5

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->a에 대한 참조가있을 것이므로 PHP5.3에서는 작동하지 않습니다 (이전 버전에 대해서는 donno). $obj->a를 해제하면 $obj->b의 값은 null이됩니다. 어떤 아이디어라도 제발?

+1

PHP 버전 5.3.4 : 객체 (stdClass) # 1 (1) {[ "B"] => 지능 (10)} – Fivell

+2

참고 자료가 아닙니다. PHP에서 변수와 참조를 작성하는 것에 대한 자세한 내용은 [이 답변] (http://stackoverflow.com/questions/3611986/in-php-can-someone-explain-cloning-vs-pointer-reference/3612129#3612129)을 참조하십시오. .. – ircmaxell

답변

5

, $obj->b은 실행 후 10입니다. 값이 다른 변수에 사용되면 order 변수에 영향을주지 않습니다.

+0

그것은 매우 편리합니다. 그것은 반사 및 다른 언어에서와 같은 다른 멋진 것들을 할 필요가 저장합니다. –

+0

감사합니다! 그것은 왜 재산을 해제 한 후 NULL이 나올지 모르겠다. = O –

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 
+0

그건 이름이 아니라 복사본이다. -> a의 두 배의 메모리를 차지합니다. "이름 바꾸기"라고 말하는 것은 대용량 데이터 집합을 처리하는 개발자에게 중요한 경우가 많습니다. – John

관련 문제