我有以下 PHP 代码:
$required_fields = array ('menu_name','visible','position');
foreach($required_fields as $fieldname)
{
if (!isset($_POST[$fieldname]) || empty($_POST[$fieldname]) )
{
$errors [] = $fieldname;
}
}
menu_name
、visible
和position
是通过post方法接收的变量。
当 visible
的值为零时,它会在错误数组中创建一个条目。
当 0 被认为“非空”时,检测变量是否为空的最佳方法是什么?
最佳答案
来自 PHP 的 manual :
empty() returns FALSE if var has a non-empty and non-zero value.
做这样的事情:
if ( !IsSet ( $_POST['field'] ) || Trim ( $_POST['field'] ) == '' )
这将确保字段已设置且不包含空字符串
本质上:是 empty()
导致了您的问题,而不是 IsSet()
关于如果值设置为 0,PHP empty($val) 函数返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022677/