代码之家  ›  专栏  ›  技术社区  ›  DaveVanFleet

codeigniter控制器中未定义php变量,var_dump返回值

  •  0
  • DaveVanFleet  · 技术社区  · 4 年前

    我在codeigniter控制器中有这段代码,它是视图中表格分页/排序功能的开始。我路过 order_by 作为查询参数,然后这是控制器操作的一部分:

    if ($order_by)
    {
      function compare_items ($a, $b){
        return $b['value'][$order_by] <=> $a['value'][$order_by];
      };
      usort($data['items'], 'compare_items');
    }
    

    问题是…我一直在犯错误 Undefined variable: order_by .

    因为我正在检查 $order_by 存在于if语句中,为什么会出现此错误?平局 var_dump() return $b['value']['<test_param>'] <=> $a['value']['<test_param>']; )即使保持if语句不变,也可以正常工作。

    是否有我不知道的导致此错误的php作用域行为?我真的是一个javascript/React开发人员,我希望我只是缺少php中一些简单的东西。

    1 回复  |  直到 4 年前
        1
  •  2
  •   Isaac Limón    4 年前

    外部变量必须使用“use”

    if ($order_by)
    {
        usort($data['items'], function ($a, $b) use ($order_by) {
            return $b['value'][$order_by] <=> $a['value'][$order_by];
        });
    }
    
    推荐文章