2016-02-29 70 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();'在foreach之前。 –

+0

你在裏面有$ missing []但是如果它直接進入其他地方會發生什麼? –

回答

0
1)Undefined variable: missing 

是的,你定義它,但代碼中只有一個分支(in_array($電子郵件,$失蹤)!)。你不能保證它的存在。當你的變量沒有被定義時,顯然會出現這種情況,並且在嘗試在某個地方使用它之前你需要照顧它。

2)in_array() expects parameter 2 to be array 

正如錯誤所述,您需要100%確定您的第二個參數確實是一個數組AND被定義。