繁体   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