我正在尝试检查一些字符串变量,如果它们为null或空,这里是我写的代码,但我知道它有问题:
if (!(empty($classid)&&(empty($dayid))&&(empty($academicyearid))&&(empty($semesterid)))) {
echo "<script type='text/javascript'>alert('The strings are empty');</script>";}
我将使用mysqli_fetch_array函数从数据库中获取这些字符串的输入。 问题是我尝试了一个简单的例子,说明为什么上面的代码不起作用。这是我试过的简单示例:
<?php
$d='';$x='1';
if (1<3){
if (!(empty($x)&&(empty($d)))){
echo "esjte null";
die();
}
}
echo "it didnt work";
?>
尽管其中一个是空的,我的意思是$ d变量它将回显字符串&#34; ejste null&#34;我该如何修复它以便检查两个变量是否都是空的而不仅仅是一个。 THX。
答案 0 :(得分:1)
你错过了感叹号&amp;&amp;这检查两者是否都不为空,如果你想检查其中一个是否为空,则替换&amp;&amp; (和)|| (或)运营商
<?php
$d='';$x='1';
if (1<3){
if (!empty($x) && !empty($d)){
echo "esjte null";
die();
}
}
echo "it didnt work";
?>
运营商的例子:
if (!empty($x) && !empty($d)) // if BOTH are not empty
if (!empty($x) || !empty($d)) // if AT LEAST ONE is not empty
答案 1 :(得分:0)
is_null是一个函数,用于查找变量是否为NULL。你可以参考这个。
答案 2 :(得分:0)
empty(var)如果变量为空,则返回true,但您使用!empty(var),返回false。
因此,当您测试一个空值时,您的测试没有通过。
// AND test if both are empty == true
if(empty($x) && empty($y))
// OR test at least one is empty == true
if(empty($x) || empty($y))
感叹号会反转您的测试结果。
// if BOTH are empty this returns false and you test fails
if (!empty($x) && !empty($d))
答案 3 :(得分:0)
试试这个:
if (empty($classid) && empty($dayid) && empty($academicyearid) && empty($semesterid))
{echo "<script type='text/javascript'>alert('The strings are empty');</script>";}