我在 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_byif 陳述句中是否存在,為什么會出現此錯誤?即使放在var_dump()if 陳述句中也會回傳一個與我在查詢引數中輸入的內容相匹配的字串。并且硬編碼一個值 ( return $b['value']['<test_param>'] <=> $a['value']['<test_param>'];) 作業得很好,即使 if 陳述句保持原樣。
是否有一些我不知道的 php 作用域行為導致了這個錯誤?我真的是一個 javascript/React 開發者,我希望我只是在 php 中遺漏了一些簡單的東西。
uj5u.com熱心網友回復:
您必須對外部變數使用“use”
if ($order_by)
{
usort($data['items'], function ($a, $b) use ($order_by) {
return $b['value'][$order_by] <=> $a['value'][$order_by];
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/361454.html
