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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题