我遇到过一个问题,在我的本地LAMP设置(运行PHP 5.3)中,使用empty()测试空字符串按预期工作,但是在远程服务器上运行相同的站点(PHP 5.1.6) )表现不同,因为empty()不识别空字符串。见下文:
表单提交一个空文本字段值,php使用以下代码测试它是否为空:
if ( ! empty($_POST['field'])
// On the remote server, the above condition never evaluates an empty field as empty. However, if i change this to the following, it works correctly..
if ($_POST['field'] !== '')
任何人都有任何线索可能会发生这种情况?
答案 0 :(得分:4)
空字符串不是唯一的“空”值。 $_POST['field']
的值很可能是null
,例如,!== ''
。请参阅:http://php.net/manual/en/function.empty.php。
答案 1 :(得分:0)
if ( ! empty($_POST['field'])
它在您的代码中或仅在问题中?它应该是:
if (!empty($_POST['field'])) {
echo 'something';
}