2017-11-24 4 views
1

은 내가 당신의 minusNum 기능, 그것은 입력 $aNum를 조작하지 않습니다 4상관없이 내가 뭘 내 코드는 같은

<?php 
function minusNum($aNum){ 
    $result=$aNum-1; 
    return $result; 
} 

$theNum=4; 
minusNum($theNum); 
echo $theNum; 
?> 
+3

함수가 반환 할 데이터를 사용하고 있지 않습니다. '$ theNum = minusNum ($ theNum); ' – SamHecquet

+0

.... 또는 참조로 전달해야합니다 :'minusNum (& $ aNum) {$ aNum = $ aNum - 1); }' – jh1711

답변

2

로 결과를 새 값을 반환 받고있는 이유 궁금 결과 없을 것입니다. 그 반환 값을 사용해야합니다. 예 :

$result = minusNum($theNum); 
echo $result; 
+0

나는 조용히 이해하지 못했다. 아마 나에게 시정을주고 그것을 얻을 수 있을까? –

1

함수의 결과를 캡처해야합니다.

<?php 

    function minusNum($aNum){ 
     $result = $aNum - 1; 
     return $result; 
    } 

    $theNum = 4; 

    $theNum = minusNum($theNum); 

    echo $theNum; 
?> 

여기서 함수의 결과를 원래 변수 $theNum에 다시 할당합니다.

변수를 함수에 전달하더라도 함수 내부에서만 변경됩니다. 값은 함수 밖에서 동일하게 유지됩니다.

+0

나는 매우 유감스럽게 생각한다. 어쩌면 전에 자바를 공부하고 매번 그것을 지정하지 않고 명세서를 적용하면 변수가 변경된다는 것을 알았다. 자바에서 내 원래 코드는 작동하지 않을까? –

+0

함수로 참조로 전달하는 경우 일 수 있습니다. PHP는 기본적으로 객체를 참조로 전달 만합니다. 스칼라 또는 배열을 참조로 전달하려면 함수 인수 앞에'&'를 접두어로 붙이면됩니다. 'function minusNum (& $ aNum) {}' – jpmcc

0
<?php 
function minusNum($aNum){ 
    $result=$aNum-1; 
    return $result; 
} 

$theNum=4; 
echo minusNum($theNum); 
?> 

에코는 결과 를 반환하지만 4 을 인 $ theNum 값을 얻을 것이다 theNum 당신이 $ 에코 때 또한 함수가 아니라 변수를 통해 전달 값 변수의 값을 포도 때문에 기능 그것은 자기. 너 자신을 모순이야. 나는 그것이 도움이되기를 바랍니다.