我有以下PHP代码:
$required_fields = array ('menu_name','visible','position');
foreach($required_fields as $fieldname)
{
if (!isset($_POST[$fieldname]) || empty($_POST[$fieldname]) )
{
$errors [] = $fieldname;
}
}
Run Code Online (Sandbox Code Playgroud)
menu_name,visible并且position是通过邮寄方式收到的变量.
当值为visible零时,它会在错误数组中创建一个条目.
当0被认为是"非空"时,检测变量是否为空的最佳方法是什么?
从PHP的手册:
如果var具有非空和非零值,则empty()返回FALSE.
做这样的事情:
if ( !IsSet ( $_POST['field'] ) || Trim ( $_POST['field'] ) == '' )
Run Code Online (Sandbox Code Playgroud)
这将确保字段已设置且不包含空字符串
从本质上讲:它empty()不会导致你的问题IsSet()