1

我有以下代码:

function create_sort_callback($criteria)
{
  return function($a, $b)
  {
    $a = $a[$criteria];
    $b = $b[$criteria];

    return ($a == $b ? 0 : (($a < $b) ? -1 : 1));
  };
}

事实证明我无法$criteria从内部函数中访问。我怎么解决这个问题?

4

2 回答 2

0

像这样试试

function create_sort_callback($criteria)
{
  return function($a, $b) use($criteria)
  {
    $a = $a[$criteria];
    $b = $b[$criteria];

    return ($a == $b ? 0 : (($a < $b) ? -1 : 1));
  };
}

您需要使用闭包http://www.php.net/manual/en/functions.anonymous.php

于 2013-02-23T19:00:34.657 回答
0

使用use关键字。

function create_sort_callback($criteria)
{
  return function($a, $b) use ($criteria)
  {
    $a = $a[$criteria];
    $b = $b[$criteria];

    return ($a == $b ? 0 : (($a < $b) ? -1 : 1));
  };
}
于 2013-02-23T19:00:45.437 回答