-1

如果可以的话,我会进一步详细说明,但我遇到的主要问题是我无法访问函数之外的变量。我已经尝试了以下两种方法。

这是我的来源:

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

echo $rand;
4

5 回答 5

1

可能对你有帮助

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



return $rand;
} 

回声寄存器($rand,$code);

于 2013-03-25T06:18:07.230 回答
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;
于 2013-03-25T06:15:24.713 回答
0

您必须在设置 $rand 之前调用该函数。在调用 register() 之前,函数内部的全局 $rand 不会设置任何值。

<?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;
}
于 2013-03-25T06:19:30.427 回答
0

请考虑使用参数而不是使用 $GLOBALS 或使用全局 $var,因为它推荐 [看看这些问题:]

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

echo register($rand, $code, $access_token);
于 2013-03-25T06:14:33.937 回答
0
function register($rand, $code) {
    if ($code == $access_token)
        $rand = rand('100000','1000000');
}   

然后先调用函数

register('1','2');
 echo $rand;
于 2013-03-25T06:11:58.293 回答