簡體   English   中英

PHP:檢查鍵值不為空

[英]PHP: checking key value is not empty

我寫了一個小函數來檢查表單的必填字段,不是空的。 該函數接受兩個參數,1st是一個包含$ _POST superglobal的所有值的數組。 第二個是我填充的必填字段數組。

看一看:

public $errors = array();

public function validate_fields($fields_array, $required_fields) 
{
    foreach ($required_fields as $key => $value)
    {
        if (array_key_exists($key, $fields_array)) 
        {
            # If key exists in $fields_array
            # check that the key value inside $fields_array is set & isn't empty
            # if it's empty, populate with an error
            if(empty($fields_array[$key][$value]))
            {
                $this->errors[] = "{$key} is empty but in fields_array";
            }
        }
        else 
        {
            # Key does not exists in $fields_array
            # Did someone temper with my html ?
            $this->errors[] = "{$key} is not in fields_array";
        }
    }
    return (empty($this->errors)) ? true : false;
}     

我遇到的問題似乎與“if(empty($ fields_array [$ key] [$ value]))”語句有關。 我的目標是根據$ required_fields鍵檢查$ fields_array鍵值是否為空。 我確定我正在使用的聲明已關閉。 如果你看到任何你認為可以寫得更好的東西,請告訴我,因為我是php新手。 感謝幫助。

我想你要做的是:

if(empty($fields_array[$key])) {
    //this means value does not exist or is FALSE
}

如果您還想僅檢查空字符串或空白區域,那么您需要的不僅僅是空的。 例如

if(empty($fields_array[$key]) || !trim($fields_array[$key]))         {
    //this means key exists but value is null or empty string or whitespace only
}

請注意,上述答案僅適用於> PHP 5.4中的索引數組。 如果你有一個關聯數組,你必須使用isset而不是empty:

if(isset($fields_array[$key]) && trim($fields_array[$key]) != '')

http://nl3.php.net/manual/en/function.empty.php ,例子#2

您不需要選擇值作為索引只是鍵。 $ fields_array [$ key] = $ value;

if(empty($fields_array[$key]) && trim($fields_array[$key]) != '')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM