【问题标题】:PHP Global arrayPHP 全局数组
【发布时间】:2020-05-10 01:03:39
【问题描述】:

我有一个 json_decoded 变量,我希望它是全局的,因为我需要在代码中(在将那个值插入 SQL 的 foreach 循环中)对其进行匹配。

但问题是在尝试了几种方法后我无法访问这个$uomlookup 值。它在本地工作,但不适用于全球。

我做错了什么?

$inttrans = "SELECT * FROM mydb";
$stmt = sqlsrv_query($conn3, $inttrans);

while($rows = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) 
{

      $uomname = $rows['abbreviation'];
      $uomid = $rows['id'];
      $uomjson = array("$uomname"=>"$uomid");
      $uomencode = json_encode($uomjson);

     $uomlookup = json_decode($uomencode, true);
     echo $uomlookup['val1'];

}

【问题讨论】:

    标签: php arrays global-variables


    【解决方案1】:

    您展示的代码是否在函数内部工作?如果是这样,那么您很可能应该将其退回:

    function myfunction() {
       //do your stuff
       return $value_of_the_future_uomlookup;
    }
    
    $uomlookup = myfunction();
    

    全局变量通常意味着你的代码写得不好。然而,如果你想让你的变量全局化,只需声明它:

    function myfunction() {
       global $uomlookup;
    
       //do your stuff
    }
    

    如果您有不同的情况,请提供更多关于您要达到的目标的信息。

    【讨论】:

    • 我现在没有使用这是一个函数,但我试过了,但这没有用(我可能有这个 $uomlookup['val1'] 但 val1 将在代码)
    • 我仍然有问题,但我无法访问变量,我的 json 和数组输出看起来像 [{"1":"ca"},{"2":"ws"},{" 3":"or"}]Array ( [0] => Array ( [1] => ca ) [1] => Array ( [2] => ws ) [2] => Array ( [3] =>或 ) ) 回显 $uomencode; print_r($uomlookup);例如,如何让变量查找 ca 并返回 id?
    【解决方案2】:

    我发现我将 json 分配给了一个新数组,并且我能够使用该变量

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多