Синтаксическая ошибка php в строке 9

Я смотрю на это уже час. Там написано, что у меня ошибка разбора: синтаксическая ошибка, неожиданное '{' в строке 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
}
}

?>

3 ответа

Вы неправильно закрыли скобки:

if(array_key_exists($i, $b){

должно быть

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

Вам не хватает ) на этой линии:

if(array_key_exists($i, $b){

должно быть:

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

Вы пропустили скобку в вашем первом 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)){

И, наконец, вам не хватает ; в вашем ответном заявлении:

return $result;

Я бы посоветовал вам использовать PHP IDE, такой как Eclipse, который будет указывать на синтаксические ошибки. Мы все делаем ошибки, и поиск пропущенных скобок в текстовом редакторе может быть очень неприятным.

Другие вопросы по тегам