0

我已经盯着这个看了一个小时了。它说我有一个解析错误:语法错误,第 9 行中出现意外的“{”。

有人可以帮我看看这个。提前致谢。

<?php

if(isset($_POST['submit']))
{
 function foo($a, $b)
{
   foreach(array_keys($a) as $i)
   {
      if(array_key_exists($i, $b){
          $result[$i] = $a[$i]*$b[$i];
      }else{
          $result[$i] = 0;
      }
   }
   foreach(array_keys($b) as $i)
   {
      if(not array_key_exists($i, $a){ //exists in b but not i a
          $result[$i] = 0;
      }
   }
   return $result
}
}

?>
4

3 回答 3

6

您没有正确关闭括号:

if(array_key_exists($i, $b){

应该

if(array_key_exists($i, $b)){
于 2012-07-13T15:26:35.150 回答
2

您在第一个中缺少括号if

if(array_key_exists($i, $b){

应该

if(array_key_exists($i, $b)){

此外,not不是有效的运算符(也缺少括号)。所以

if(not array_key_exists($i, $a){

应该

if(! array_key_exists($i, $a)){

;最后,您的退货声明中缺少 a :

return $result;

我建议您使用 PHP IDE,例如 Eclipse,它会指出语法错误。我们都会犯错误,在纯文本编辑器中发现缺少的括号会非常令人沮丧。

于 2012-07-13T15:30:51.997 回答
2

)在这一行缺少一个:

if(array_key_exists($i, $b){

应该:

if(array_key_exists($i, $b)){
于 2012-07-13T15:26:43.337 回答