好的,让我们从代码开始
<?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、预期在 /home/MONKEY DO/public_html/gateway/crn.php 在第 6 行
错误消息显示"我得到了一个函数,但我期望一个)
"。它告诉你,根据解析器的语法,令牌function
预计不会在那个时候发生。当你写array_map(function(...
时,你正在使用令牌function
传递一个匿名函数,这是编译器不喜欢的。
匿名函数是在 PHP 5.3 中引入的。您可能正在运行旧版本的 PHP。 检查您正在运行的版本,并在需要时进行升级。