2011-11-04 8 views
0

나는 그곳에 변수를 포함하는 별도의 파일을 가지고 있습니다. 어떻게 이러한 변수를 전역으로 만들 수 있습니까?PHP : 전역 변수 범위

Ex. values.php 파일에 $myval 값이 있습니다. index.php에서 나는 $myval 값을 필요로하는 함수를 호출합니다.

index.php 파일의 시작 부분에 include(values.php);을 추가하면 함수 내에서 스코프가 손실됩니다. 나는 index.php 파일의 여러 함수에서 같은 변수를 호출 할 것이다. 함수 내부

+3

글로벌 변수를 사용하는 이유와 같은 결과를 얻는 더 좋은 방법이 있는지 물어볼 수 있습니다. 전역 변수는 거의 항상 나쁜 생각입니다. – liquorvicar

+0

include 변수 범위와 아무 관련이 없습니다. 조사하기가 어렵습니까? –

+0

내가 전역 범위를 가지고 있다고 말하면, 스크립트에서 변수가 정의 된 위치에 파일을 포함 시키면 전역 범위에 그대로 남아서 그대로 취급 될 수 있다고 생각합니다. 예, 그것이 작동하지 않는다는 것을 알게 된 후, 스크립트가 실행될 때마다 include가 단지 나를 위해 변수를 다시 정의하는 것처럼 보입니다. PHP 문서는 이것에 관해 전혀 이야기하지 않는다. – Joshua

답변

7

기능 내부는 global 키워드를 사용하거나 the $GLOBALS[] array에서 변수에 액세스 사용을 $GLOBALS[]. 따라서 글로벌 범위에서 무언가에 액세스하고 있음을 분명히 알 수 있습니다. 마지막으로하지만

function myfunc() { 
    echo $GLOBALS['myvar']; 
} 

,

가능하면, 시작 및 함수에 매개 변수로 대신를 전달하는 글로벌 변수를 사용하지 :

는 변수를 선언하는 것처럼
function myfunc($myvar) { 
    echo $myvar . " (in a function)"; 
} 

$myvar = "I'm global!"; 
myfunc($myvar); 
// I'm global! (in a function) 
+1

'$ GLOBALS'에 +1하세요! –

+0

안녕하세요, 당신의 전문 지식을 공유하십시오. –

0

동일 동일한 파일에 있습니다.

function doSomething($arg1, $arg2) { 
    global $var1, $var2; 
    // do stuff here 
} 
1

함수의 시작 부분에 global 키워드를 사용하면 해당 변수가 범위에 포함됩니다. 따라서 예를 들어

$outside_variable = "foo"; 

function my_function() { 
    global $outside_variable; 
    echo $outside_variable; 
} 
1

변수를 함수에 전달할 수없는 이유가 있습니까?

myFunction($myVariable) 
{ 
    //DO SOMETHING 
} 

전역 변수를 사용하는 대신 변수를 전달하는 것이 훨씬 더 좋습니다.