1

それでは、コードから始めましょう

<?php
function LuhnCalc($number) {
  $chars = array_reverse(str_split($number, 1));
  $odd = array_intersect_key($chars, array_fill_keys(range(1, count($chars), 2), null));
  $even = array_intersect_key($chars, array_fill_keys(range(0, count($chars), 2), null));
  $even = array_map(function($n) { return ($n >= 5)?2 * $n – 9:2 * $n; }, $even);
  $total = array_sum($odd) + array_sum($even);
  return ((floor($total / 10) + 1) * 10 – $total) % 10;
}

print LuhnCalc($_GET['num']);
?>

エラーは次の行に表示されています

  $even = array_map(function($n) { return ($n >= 5)?2 * $n – 9:2 * $n; }, $even);


  return ((floor($total / 10) + 1) * 10 – $total) % 10;

エラーは

解析エラー: 構文エラー、予期しない T_FUNCTION、6 行目の /home/MONKEY DO /public_html/gateway/crn.php に ')' が必要です

4

1 に答える 1

2

エラー メッセージには、"I got a function but I expected a )". パーサーの文法によれば、functionその時点でトークンが発生することは期待されていないことを示しています。あなたが書いているときは、コンパイラが好まないarray_map(function(...token を使用して無名関数を渡しています。function

無名関数は PHP 5.3 で導入されました。古いバージョンの PHP を実行している可能性があります。実行しているバージョンを確認し、必要に応じてアップグレードしてください。

于 2012-06-12T23:35:29.463 に答える