2016-02-29 5 views
0

Я сейчас пытаюсь выяснить PHP. однако я все время сталкиваюсь с некоторыми ошибками.Неопределенная переменная: отсутствует в

это мой PHP строка кода, которая имеет две ошибки: 1) Неопределенная переменная: отсутствует 2) in_array() ожидает параметр 2 будет массив моя догадка будет недостающий переменной ($ отсутствует) будет но я определил его чуть выше. ошибки в линии: если

foreach ($_POST as $key => $value) { 
    if (in_array($key, $expected)) { 
     if (!is_array($value)) { 
      $value = trim($value); 
     } 

     if (empty($value) && in_array($key,$required)) { 
      $$key = ''; 
      $missing[] = $key; 
     } else { 
      $$key = $value; 
     } 
    } 
} 

if (!in_array($email, $missing)) { 
    $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); 
    if (!$email){ 
     $errors['email'] = 'use a valid mail address'; 
    } 
} 
+0

Ожидается, что второй параметр, $ missing, будет массивом. Сначала используйте print_r, чтобы распечатать $ missing, чтобы узнать, что он выводит. – jessica

+0

Ваш код не гарантирует, что отсутствующий будет установлен. Добавьте '$ missing = array();' Before foreach. –

+0

у вас есть $ missing [] внутри, если, но что происходит, если он идет прямо в другое? –

ответ

0
1)Undefined variable: missing 

Да, вы определили, но только в одной ветви коды (in_array ($ электронной почты, $ недостающее)!). Вы не гарантируете его существование. Очевидно, ситуация, когда ваша переменная не определена вообще, и вам нужно позаботиться о ней, прежде чем пытаться ее использовать.

2)in_array() expects parameter 2 to be array 

Как говорится в ошибке, вам необходимо сделать 100% уверенным, что ваш второй параметр действительно является массивом AND.

Смежные вопросы