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 に答える