2016-07-28 1 views
0

PHP로 된 참조에 대해이 기사를 읽었습니다.PHP : 참조 지정, 전달 및 반환

PHP References: How They Work, and When to Use Them

나는 구문을 알고 있지만 나는 PHP에 대한 참조를 사용하는 경우에 조금 혼란 스러워요. 참고 자료를 적용 할 수있는 실례를 나에게 줄 수 있습니까? 참조를 사용하는 것이 필요한가 아니면 일반적인 형식의 함수를 사용할 수 있습니까? 참고 문헌의 진정한 목적은 무엇입니까?

내가 쉽게 이해할 수 있도록 설명해 주시겠습니까?

답변

0

참조를 사용하는 이유는 예를 들어 함수에 전달 된 값을 수정하기 위해서입니다.

$nameOfUser = "Mr. Jones"; 

function changeName(&$name) { // Passing the value by reference 
    $name = "Foo"; 

    return $name; 
} 

changeName($nameOfUser); 

/** 
* The echo below will output "Foo" since the changeName() function 
* changed the value of the variable we passed in by reference 
*/ 
echo $nameOfUser; 

내 예제했다 희망 : 나는 이런 식으로 할 것 참고로 위의 두 번째 예에서와 동일한 결과를 얻으려면

다음은 이제 예를 들어

$nameOfUser = "Mr. Jones"; 

function changeName($name) { // Not passing the value by reference 
    $name = "Foo"; 

    return $name; 
} 

changeName($nameOfUser); 

/** 
* The echo below will output "Mr. Jones" since the changeName() function 
* doesn't really change the value of the variable we pass in, since we aren't 
* passing in a variable by reference. We are only passing in the value of the 
* $nameOfUser variable, which in this case is "Mr. Jones". 
*/ 
echo $nameOfUser; 

$nameOfUser = changeName($nameOfUser); 

/** 
* This echo below will however output "Foo" since we assigned the returning 
* value of the changeName() function to the variable $nameOfUser 
*/ 
echo $nameOfUser; 

입니다 이해할 수 있으며 참조 자료가 어떻게 작동하는지 더 잘 이해할 수 있습니다.

필자는 개인적으로 값을 반환하고 그 방식으로 설정하는 것이 더 바람직하다고 생각하기 때문에 참조가 필요할 때의 예가 없습니다. 함수에 전달 된 변수를 수정하면 함수를 사용하는 사용자가 혼란 스러울 수 있습니다.

+0

- 참조를 사용하면 어떤 이점이 있습니까? –

+0

글쎄, 유일한 이점은 PHP가 첫 번째 포인터를 사용하기 때문에 다른 변수를 생성 할 필요가 없다는 것입니다. 그러나 나는 당신이 성능상의 차이를 느끼지 않을 것이라고 생각합니다. 난 당신이 참조를 사용하는 경우 코드를 이해하기 어렵게 만한다고 생각합니다. – Marwzoor

+0

그러면 프로그래머를 혼란스럽게하는 경우 PHP에 참조를 포함시키는 이유는 무엇입니까? –