2010-06-23 3 views
1

함수에서 변수를 반향하는 방법은 무엇입니까? 이것은 예제 코드입니다.함수에서 변수를 반향하는 방법

 
function test() { 
    $foo = 'foo'; //the variable 
} 

test(); //executing the function 

echo $foo; // no results in printing it out 

+1

변수를 인쇄하려고합니까? 왜 함수 안에 인쇄하지 않습니까? 그것을 반환하려고합니까? 아니면 반환 후 인쇄하려고합니까? – MJB

+0

함수 앞에 선언되지 않은 변수는 인쇄 할 수 없습니다. – user29964

답변

11

질문에 대한 즉각적인 대답은 함수의 범위에 $foo를 가져올 것 : PHP here의 변수 범위에

function test() { 

    global $foo; 
    $foo = 'foo'; //the variable 
} 

더.

그러나 이것은 대부분의 경우에 좋지 않습니다. 일반적으로 을 함수에서 원하는 값으로을 반환하고이 함수를 호출 할 때 $foo에 할당하려고합니다. 그것은 단지 기능의 범위에 존재하기 때문에

function test() 
    { 
     return "foo"; 
    } 

    $foo = test(); 

    echo $foo; // outputs "foo" 
3

변수 수명 범위는 함수 내에 있습니다. 함수 외부에서 액세스하려면 전역으로 선언해야합니다.

function test() { 
    $foo = 'foo'; //the variable 
    echo $foo; 
} 

test(); //executing the function 

을하거나 글로벌 제안 선언

당신은 할 수 있습니다. 그렇게하려면, 여기 설명서를 보라 : http://php.net/manual/en/language.variables.scope.php

2
function test() { 
    return 'foo'; //the variable 
} 

$foo = test(); //executing the function 

echo $foo; 
2

귀하의 $foo 변수는 함수의 외부에 표시되지 않습니다.

에코 기능 자체에서 :

function test() { 
    $foo = 'foo'; 
    echo $foo; 
} 

에코 리턴 결과 :

function test() { 
    $foo = 'foo'; //the variable 
    return $foo; 
} 

echo test(); //executing the function 

는 개인적 변수 글로벌

$foo = ''; 

function test() { 
    Global $foo; 
    $foo = 'foo'; //the variable 
} 

test(); //executing the function 

echo $foo; 
0

확인 당신은 여러 가지 방법으로 원하는 것을 할 수 있습니다 나는 할것이다.

function test(&$foo) 
{ 
    $foo = 'bar'; 
} 

test($foobar); 

echo $foobar; 

함수 섹션 "글로벌"입력 변수가되도록 변수를 변경 직접 함수 영역 밖에서 하나를 변경한다하는 기능을 말한다 매개 변수 내 앰퍼샌드!

+0

가독성을 위해 test()를 호출하기 전에 $ foobar가 정의되어있는 한 ... PHP가 $ foobar를 즉석에서 생성 함에도 불구하고 –

+0

$ foobar는 PHP가 범위 밖에서 작성해야합니다! 사용자 응용 프로그램을 만들지 않고도 내 예제가 바깥 범위 안에 $ foobar를 만들어서 잘 작동해야합니다! - http://www.php.net/manual/en/language.references.pass.php – RobertPitt

관련 문제