从函数范围内访问 php 变量
Accessing php variable from within function scope
我在 codeigniter 控制器中有这段代码,它是视图中 table 的 pagination/sorting 功能的开始。我将 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
。
既然我正在检查 if 语句中是否存在 $order_by
,为什么会出现此错误?甚至将 var_dump()
放在 if 语句 returns 中,一个字符串与我在查询参数中输入的任何内容相匹配。硬编码值 (return $b['value']['<test_param>'] <=> $a['value']['<test_param>'];
) 工作得很好,即使 if 保持 if 语句不变。
是否有一些我不知道的 php 作用域行为导致了此错误?我真的是一个 javascript/React 开发者,我希望我只是在 php.
中遗漏了一些简单的东西
外部变量必须使用“use”
if ($order_by)
{
usort($data['items'], function ($a, $b) use ($order_by) {
return $b['value'][$order_by] <=> $a['value'][$order_by];
});
}
我在 codeigniter 控制器中有这段代码,它是视图中 table 的 pagination/sorting 功能的开始。我将 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
。
既然我正在检查 if 语句中是否存在 $order_by
,为什么会出现此错误?甚至将 var_dump()
放在 if 语句 returns 中,一个字符串与我在查询参数中输入的任何内容相匹配。硬编码值 (return $b['value']['<test_param>'] <=> $a['value']['<test_param>'];
) 工作得很好,即使 if 保持 if 语句不变。
是否有一些我不知道的 php 作用域行为导致了此错误?我真的是一个 javascript/React 开发者,我希望我只是在 php.
中遗漏了一些简单的东西外部变量必须使用“use”
if ($order_by)
{
usort($data['items'], function ($a, $b) use ($order_by) {
return $b['value'][$order_by] <=> $a['value'][$order_by];
});
}