2013-05-22 3 views
0

주 파일;포함 된 함수에서 변수를 사용하는 PHP

$opid=$_GET['opid']; 
include("etc.php"); 

등 .php;

function getTierOne() { ... } 

함수 전후에 $ opid 변수를 사용할 수는 있지만 함수에서 사용할 수는 없지만 정의되지 않은 값을 반환합니다. 포함 된 파일의 기능과 함께 사용하려면 어떻게해야합니까?

+0

'전역의 $ OPID,'처음 기능에 있지만 다른 작동 opid''글로벌 $와 기능 – k102

답변

0

그 함수가 로컬 영역을 가지고 있기 때문이다. 함수 내에서 정의 된 변수 만 볼 수 있습니다. 함수 외부에 정의 된 변수는 함수로만 가져 오거나 전역으로 사용할 수 있습니다.

$someVariable = 'someValue'; 

function getText(){ 
    global $someVariable; 

    echo $someVariable; 
    return; 
} 

getText(); 

그러나, 나는이 방법에 대해 조언을 것 :

중 하나가 글로벌 키워드입니다,이 작업을 수행하는 방법은 여러 가지가 있습니다. $someVariable을 다른 이름으로 변경하면 어떻게됩니까? 가져온 각 함수로 이동하여 변경해야합니다. 별로 역동적이지 않습니다.

다른 방법이 될 것이다 :

$someVariable = 'someValue'; 

function getText($paramater1){ 
    return $parameter1; 
} 

echo getText($someVariable); 

이 더 논리적 및 조직이다. 변수를 함수에 인수로 전달하는 것은 각 함수 내에서 global 키워드를 사용하는 것보다 낫습니다.

POST, REQUEST, SESSION 및 COOKIE 변수는 모두 슈퍼 전역입니다. 이것은 그들이 암시 적으로 가져올 필요없이 기능 내에서 사용할 수 있습니다 의미 :

// Assume the value of $_POST['someText'] is someValue 

function getText(){ 
    $someText = $_POST['someText']; 
    return $someText; 
} 

echo getText(); // Outputs someValue 
+0

의 beginnig있다. 포함 된 파일에는 5 가지 기능이 있습니다. – milesh

+0

각 변수에서 변수를 가져 오기 위해'global' 키워드를 사용해야하기 때문에. 예를 들면 :'function testFunctionOne() {global $ someVariable; }''function testFunctionTwo() {global $ someVariable; }'보시다시피, 각 함수에 대해 global 키워드를 사용하는 것은 실제로 실용적이지 않습니다. 이것을 확인하십시오 : http://stackoverflow.com/questions/1557787/are-global-variables-in-php-considered- 나쁜 연습 - 그렇다면 - 왜? –

0
function getTierOne() 
{ 
    global $opid; 
    //... 
} 
1
$getTierOne = function() use ($opid) { 
    var_dump($opid); 
}; 
관련 문제