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 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号