2010-12-15 2 views
1

는 PHP에서 모든 객체 변수는 실제로 객체 (? 아니오), 언어가이 암시 적 처리에 대한 포인터 (오른쪽?), 그러나 나는 이와 같은 매개 변수에 대한 참조를 지정하는 많은 PHP 코드를 참조하십시오PHP에서 객체 참조를 얻기 위해 &를 ​​사용하면 중복이됩니까?

function someMethod(SomeClass& $obj) 
{ 
//... 
} 

내가 틀렸다면

function add() 
{ 
$object = new SomeClass; 
self::$objects[] =& $object; 
} 

저를 수정하지만, 여기에 어떤 차이가 없을 것이다 : 나는이 같은 일을 본 적이

self::$objects[] =& new SomeClass 
self::$objects[] = new SomeClass 

내가 맞죠 ??????

또 다른 한가지는 내가 테스트 :

class SomeClass{} 
$obj =& new SomeClass; // is in fact deprecated, doesn't work 

$obj = new SomeClass; 
$obj2 =& $obj; // works, but should also be deprecated!! No? 
+0

왜 것'='PHP에서 실행할 때 대부분의 경우 그것은 당신의 코드에 영향을 미치지 않습니다 ther 변수는 더 이상 사용되지 않을 것입니까? – BoltClock

+0

@BoltClock : 변수가 이미 객체에 대한 포인터 인 경우. – fabio

+0

@ user532722 : 객체가 아니지만'value type' 변수는 무엇입니까? – zerkms

답변

2

PHP5에서, 네, 중복 및 무의미하다.

+0

나는 너의 대답으로있어. – fabio

+0

아니야. '&'는 객체 참조와 완전히 다른 변수 참조를 만듭니다. http://stackoverflow.com/questions/3611986/in-php-can-someone-explain-cloning-vs-pointer-reference/3612129#3612129 – ircmaxell

+0

@ircmaxell : 차이에 대한 자세한 분석이 답변을 참조하십시오 경우 영업 이익으로 샘플을 얻었습니다. 차이점은 없습니다. – zerkms

0

이 페이지는 당신에게 도움이 될 수 있습니다 : 새로 선언 된 객체와 더 이상 = &를 사용하지 않도록 http://www.php.net/manual/en/language.operators.assignment.php

new 자동으로 참조를 반환합니다. 내가 아는되지 않습니다 참조 관련

+0

'& ='='= &' ; -!)'='(즉, 영업 이익은 실제로)에 대해 묻는 것입니다 2 개 사업자'='와'및'당신은 바로 내 실수,하지만 요점은 여전히 ​​유효 – zerkms

+0

. 결정된. – zsalzbank

+1

@zerkms : 나는 너무 ('$의의 somevar = $ someothervar'에 대한 참조)이 개 사업자라고 생각하지만, Artefacto에 따라이 하나의 연산자는 사실이다.[이 질문에 대한 그의 의견을 참조하십시오 (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php). – BoltClock

1

있는 유일한 방법은 통화 시간이 패스에 의해 참조 (예 : somefunction(&$var);

귀하의 코드 샘플 가능성이 PHP 4 호환성을 위해 & 기호가있다. 그것은 '아무튼 t 당신이 &를 사용하거나 PHP 5에서 객체 참조와 함께 작동 여부를 큰 차이를 만들 부여 거기 약간의 차이 (PHP 5에서 값에 의한 전달 참조 사이, 그리고 &를 사용하여 참조로 객체를 전달하는 데)하지만, 항문에 5

관련 문제