是否可以在PHP中的函数内部创建变量全局?

时间:2014-08-21 22:20:23

标签: php mysql scope

我试图创建一个返回某个用户的id号的函数,但是当我调用该函数时,我无法访问我在函数中声明的变量。 / p>

function loadlink($users){

    global $database, $rowz, $results;
    $results = $database->query("SELECT * FROM users WHERE username = '{$users}'");
    $rowz = $results->fetch_all(MYSQLI_ASSOC);
    var_dump( $rowz); //returns basic array info
}

var_dump( $rowz); //returns "NULL"
loadlink('RandomUser');

var_dump($ rowz);如果我先调用loadlink(),则返回数组信息,但问题是我想在调用loadlink()访问返回的关联数组的属性时使用$ rowz变量,但它不会返回任何内容。

1 个答案:

答案 0 :(得分:1)

你应该从你的函数返回你需要它返回的东西,而不是使用全局变量。

但是,可以使用$GLOBALS数组,尽管您需要先调用函数,然后才能访问您在其中设置的变量:

function loadlink($users){
    global $database;

    $GLOBALS['results'] = $database->query("SELECT * FROM users WHERE username = '{$users}'");
    $GLOBALS['rowz'] = $results->fetch_all(MYSQLI_ASSOC);
}

// run function first to initialize the necessary variables
loadlink('RandomUser');
var_dump($rowz); //returns basic array info