douhe6181
2014-08-21 22:20
浏览 35
已采纳

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

I'm trying to make a function that returns the id number of a certain user, but I can't access a variable that I declared in the function when I'm calling the function.

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); returns the array info if I call loadlink() first, but the thing is that I want to use the $rowz variable when calling loadlink() to access a property of the returned associative array, but it doesn't return anything.

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • doushishi2415 2014-08-21 22:23
    最佳回答

    You should really return from your function what you need it to return and not use global variables for that.

    But yes, it is possible using the $GLOBALS array although you would need to call your function first before you can access the variables you set in it:

    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
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题