以令人困惑的 usort 结束
Closure with confusing usort
我正在尝试重写一个共同开发者的脚本,运行 跨过这个 gem,我一辈子都无法理解它的作用,更不用说如何重构它了。有人可以向我解释一下它的作用吗,我对他的代码的解释是否正确?
原代码:
$f = "return (${$v[0]}['{$k}'] - ${$v[1]}['{$k}']);";
usort($results, create_function('$a,$b',$f));
我的尝试并将其重写为闭包:
$f = function ($k,$v)
{
return ($v[0][$k] - $v[1][$k]);
};
usort($results, $f($k, $v));
编辑
为清楚起见,$k
是一个 运行dom 字符串,$v
是一个 ['a','b']
或 ['b','a']
[= 的数组17=]
我真的不知道这是什么尝试,也许是这个?
usort($results, function () USE ($k,$v)
{
return ($v[0][$k] - $v[1][$k]);
});
我正在尝试重写一个共同开发者的脚本,运行 跨过这个 gem,我一辈子都无法理解它的作用,更不用说如何重构它了。有人可以向我解释一下它的作用吗,我对他的代码的解释是否正确?
原代码:
$f = "return (${$v[0]}['{$k}'] - ${$v[1]}['{$k}']);";
usort($results, create_function('$a,$b',$f));
我的尝试并将其重写为闭包:
$f = function ($k,$v)
{
return ($v[0][$k] - $v[1][$k]);
};
usort($results, $f($k, $v));
编辑
为清楚起见,$k
是一个 运行dom 字符串,$v
是一个 ['a','b']
或 ['b','a']
[= 的数组17=]
我真的不知道这是什么尝试,也许是这个?
usort($results, function () USE ($k,$v)
{
return ($v[0][$k] - $v[1][$k]);
});