2013-03-25 2 views
0

가능하다면 더 자세히 설명 하겠지만, 주요 문제는 함수 외부의 변수에 액세스 할 수 없다는 것입니다. 나는 아래 두 가지 방법을 시도했다. 여기 함수 밖의 변수에 액세스하십시오.

내 소스 :

function register($rand, $code) { 
    global $rand, $access_token; 
    if ($code == $access_token) 
     $rand = rand('100000','1000000'); 
} 

echo $rand; 
+0

어디에서 해당 기능을 호출 할 수 있습니까? –

+1

함수를 호출하면 정상적으로 작동해야합니다. http://phpfiddle.org/main/code/gz9-x72 –

+0

글로벌을 사용하면 안됩니다. –

답변

1
function register($rand, $code) { 
    if ($code == $access_token) 
     $rand = rand('100000','1000000'); 
} 

가 먼저 함수를 호출

register('1','2'); 
echo $rand; 
+0

죄송하지만 register (1,2)를 호출 할 때 그 숫자는 무엇을 나타 냅니까? 그냥 레지스터 ($ rand)를 넣을 수는 없다. –

+0

첫 번째 코드 블록에서'echo $ rand; –

+0

은 함수에서 $ rand 및 $ code 매개 변수의 값을 전달한다는 것을 의미합니다. –

0

의 추천 때문에, 인수를 사용하는 대신 $ GLOBALS를 사용하거나 글로벌 $ var에 사용을 고려하십시오 [이 질문을보십시오 : one & two]

function register($rand, $code, $access_token) { 
    if ($code == $access_token){ 
     $rand = rand('100000','1000000'); 
    } 
    return $rand; 
} 

echo register($rand, $code, $access_token); 
0

$rand 변수에 액세스하기 전에 함수를 호출하면 정상적으로 실행됩니다.

function register($rand, $code) { 
    global $rand, $access_token; 
    if ($code == $access_token) { 
     $rand = rand('100000','1000000'); 
    } 
    echo "\nInside Function = ".$rand; 
    echo $access_token; 
} 

register(100, ''); 
echo "\nOutside Function = ".$rand; 
1

있을 수 있습니다 당신

function register($rand, $code) { 
    global $rand, $access_token; 
    if ($code == $access_token) { 
     $rand = rand('100000','1000000'); 
    } 



return $rand; 
} 

에코 레지스터 ($ 랜드, $ 코드)에 대한 도움말입니다;

0

$ rand가 설정되기 전에이 함수를 호출해야합니다. 함수 내의 전역 $ rand는 register()를 호출하기 전에 값을 설정하지 않습니다.

<?php 
    function register($rand, $code) { 
     global $rand, $access_token; 
     if ($code == $access_token) 
      $rand = rand('100000','1000000'); 
    } 
    register('x', 'y'); 

    echo $rand; 
?> 

PHP가 함수를 호출하기 전에 모든 전역 값을 설정하면 다음을 생각해보십시오. $ rand는 무엇으로 설정 되나요? 함수 중 하나가 호출 될 때만 의미가 있습니다.

<?php 
function a() { 
global $rand = 1; 
} 
function b() { 
global $rand = 2; 
} 
관련 문제