2014-01-25 4 views
-2
$var = "Value 1"; 

function setVar() { 
    global $var; 
    $var = "Value 2"; 
} 

function test($someVar) { 
    echo $someVar; 
} 

test($var); 

test (setVar())의 출력을 "값 2"로 설정하고 setVar()에서 $ var를 반환하지 않겠습니다. 이것이 가능한가?PHP 함수 내 변수 범위

+0

'setVar'는 아무것도 반환하지 않으므로 'test' 함수에 아무 것도 전달하지 않습니다. 'test' 함수에서'$ var'을 출력하고 싶다면'$ someVar' 대신에 그것을 출력하십시오. –

+0

'setVar'가 아무 것도 반환하지 않으면'test'와 어떤 관계가 있습니까? – deceze

+0

그래, 어떻게 쓸 것이기 때문에 setVar는 $ var를 반환합니까? 그게 내 '적절한'코드 (여기에 넣기에는 너무 복잡하다)이다. setVar()은 다른 것을 반환하고, setVar 함수 밖에서 사용할 수있는 $ var의 값을 필요로하므로 테스트 할 매개 변수로 전달할 수있다.(). 너무 바보가되어서 미안하지만 나는 하루 종일 붙어 있었어. ( –

답변

0

global을 사용하지 마십시오. 전혀global을 사용하십시오. 대신 참조를 사용하십시오 :

$var = "Value 1"; 

function setVar(&$x) 
{ 
    $x = "Value 2"; 
} 

function test($y) 
{ 
    echo $y; 
} 

setVar($var); 

test($var);