PHP其他条件不起作用

时间:2013-04-30 15:28:33

标签: php if-statement

我遇到了一些代码。

这很简单,我有以下代码:

 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';

}



}

希望这有帮助

3 个答案:

答案 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';
    }
    

所以,这里有一个解决所有这些问题的算法

  1. 相信你的眼睛。
  2. 检查代码
  3. 再次检查代码。

答案 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/