我遇到了一些代码。
这很简单,我有以下代码:
if ($somevariable == 1) {
echo 'Do Something here';
} else {
echo 'Do Something Else';
}
$ somevariable返回1或根本没有。
当第一个条件为真时...当它为1时它正在工作......
但是当没有任何东西返回或者它是空的时,else条件不会返回“Do Something Else”。
ELSE不应该意味着任何其他条件吗?
如何解决这个问题?
UPDATE
实际代码:
$result2 = mysql_query("SELECT * FROM `follows` WHERE `user_id` = '$session_user_id' AND `venue_id` = '$venue_id'");
while ($row2 = mysql_fetch_assoc($result2))
{
$following = $row2['following'];
if ($following == 1) {
echo 'do something';
} else {
echo 'do something else';
}
}
希望这有帮助
答案 0 :(得分:8)
试试这个:
if (isset($somevariable) && $somevariable === 1) {
echo 'Do Something here';
} else {
echo 'Do Something Else';
}
这将检查变量是否已设置,以及它是否在值和 type (整数)中严格等于1
。
编辑:我已经尝试过您的代码,它似乎工作正常。我建议您发布实际代码。我认为问题不在于你的if语句。
答案 1 :(得分:3)
如何解决这个问题?
通过查找和纠正类似错字的错误。
您的代码将始终回应一些东西。所以,只有两种可能性
'here'
- $ somevariable总是包含非空值。或者在您运行的实际代码中,单 =
,而非==
发布如果没有打印 - 你正在运行代码而没有其他部分:
if ($somevariable == 1) {
echo 'Do Something here';
}
所以,这里有一个解决所有这些问题的算法
答案 2 :(得分:-2)
尝试回显该值并查看数据库返回的内容。实际价值是多少?你看到了数据库吗?
$result2 = mysql_query("SELECT * FROM `follows` WHERE `user_id` = '$session_user_id' AND `venue_id` = '$venue_id'");
while ($row2 = mysql_fetch_assoc($result2))
{
$following = $row2['following'](int);
echo $following;
if ($following == 1) {
echo 'do something';
} else {
echo 'do something else';
}
}
PHP具有不同的功能,可用于测试变量的值。三个有用的函数是isset(),empty()和is_null()。所有这些函数都返回一个布尔值。如果未正确使用这些功能,可能会导致意外结果。
isset()和empty()通常被视为相反的函数,但并非总是如此。在这篇文章中,我将解释这些功能之间的差异。
isset()函数
来自PHP手册:
isset - 确定变量是否已设置且不是NULL
换句话说,仅当变量不为空时才返回true。
空() 来自PHP手册: empty - 确定变量是否为空
换句话说,如果变量是空字符串,false,array(),NULL,“0?,0和未设置的变量”,它将返回true。
is_null() 来自PHP手册: is_null - 查找变量是否为NULL
点击此处了解更多信息
https://www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/