2016-12-05 5 views
0

У меня есть недопустимый аргумент suplied для Еогеаспа() на следующий коде, и я не могу понять, почему ..Недействительного аргумент для Еогеаспа() в функции сухарей

function empuls_breadcrumb($breadcrumb) { 
    if (!empty($breadcrumb)) 
     { 
     foreach($breadcrumb as $k => $v) { 
      foreach ($v as $key=>$value){ 
      $breadcrumb[$k][$key]='<span>'.$value.'</span>'; 
     } 
     } 
    return '<div class="breadcrumb">'. implode(' ', $breadcrumb['breadcrumb']) .'</div>'; 
    } 
} 

Это код, используемый на тема Drupal, панировка показывается без проблем, но я бы хотел, чтобы предупреждение было решено, конечно. Спасибо, что посмотрели на него.

ответ

0

Я бы предположил, что $breadcrumb не повторимся. Вместо !empty проверьте, является ли это is_array() (предполагается, что вы ожидаете массив или какой-либо другой итерируемый объект PHP)

Вы должны уточнить свой вопрос с определенной ошибкой. Это может быть внутренний for, который вызывает проблему, если массив $breadcrumb не содержит массивы, так как вы не проверяете тип внутри.

Если вам подойдет, я бы посоветовал попробовать dpm($breadcrumb), чтобы увидеть структуру переменной, которую получает эта функция.

+0

Если изменить порожнем с is_array он пропадает полностью (ошибка и сухари). Если я hange! Is_array, is_array показывает снова, но с предупреждающим сообщением (то же, что упоминалось выше). Спасибо, что посмотрели на него. –

+0

Да, я опечатал - извините! Проверьте структуру данных, которые передаются в массив, вероятно, это будет не так, как вы ожидаете – AndFisher

0

Вы должны проверить переменную перед использованием его:!

function empuls_breadcrumb($breadcrumb) { 
    if (!empty($breadcrumb) && (is_array($breadcrumb) || is_object($breadcrumb))){ 
     foreach($breadcrumb as $k => $v) { 
      if(is_array($v) || is_object($v)){ 
       foreach ($v as $key=>$value){ 
        $breadcrumb[$k][$key]='<span>'.$value.'</span>'; 
       } 
      } 
     } 
    return '<div class="breadcrumb">'. implode(' ', $breadcrumb['breadcrumb']) .'</div>'; 
    } 
}