함수에서 참조를 설정하려고합니다. 그러나, 나는이 일을 할 수 없다. 내가 시도PHP 함수 내부에서 참조를 설정하는 방법은 무엇입니까?
코드 :
function set(&$x, &$y)
{
$x =& $y[2];
}
$y = array(
0,
1,
array('something')
);
$x = array('old_val');
print "1. inited, x is:\n";
print_r($x);
set($x, $y);
print "\n2. now, x is: ";
print_r($x);
출력 :
1. inited, x is:
Array
(
[0] => old_val
)
2. now, x is: Array
(
[0] => old_val
)
내가 $ 값 y로 동일하게 $ x의 값을 기대하고있다 [2]. 또한 $ x에 대한 추가 수정은 $ y [2]를 변경해야합니다. (C의 포인터 할당에서와 같이 : x = &y[2];
) 내가 뭘 잘못하고 있니? 어떤 제안도 감사합니다.
편집 : 실제로 테스트 코드의 function set()은 테스트 용으로 단순화 된 코드입니다. 이것은 실제로 select_node (& $ x, & $ tree, $ selector)입니다 : $ selector에 일치하는 트리에서 $ x에 할당하는 노드를 선택합니다.
좋아 참조
:
을 그리고 다음과 같이 호출 , 엄청 이상해. 함수 내에서 $ x에 무언가를 할당하면 (배열로 되돌려 놓고 함수 밖에서 설정됩니다) 작동하지만, 다른 방법으로는 작동하지 않습니다 ... hmmm. –