1

I am stuck with some code.

It's quite simple, I have the following code:

 if ($somevariable == 1) {
   echo 'Do Something here';
} else {
   echo 'Do Something Else';                
} 

$somevariable is returning either 1 or nothing at all.

When the first condition is true ...when it's 1 it's working as it should ...

BUT the else condition does not return "Do Something Else" when nothing is return or it's empty.

Shouldn't ELSE mean any other condition?

How can I sort this problem out?


UPDATE

Actual Code:

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

}



}

Hope this helps

4

3 回答 3

8

尝试这个:

if (isset($somevariable) && $somevariable === 1) {
   echo 'Do Something here';
} else {
   echo 'Do Something Else';                
} 

这将检查变量是否已设置,以及它是否严格等于1类型(整数)。

编辑:我试过你的代码,它似乎工作正常。我建议您发布您的实际代码。我认为问题不在于您的 if 语句。

于 2013-04-30T15:31:35.557 回答
4

我该如何解决这个问题?

通过查找和纠正类似错字的错误。

你的代码总是会回显一些东西。所以,只有2种可能

  • 如果它总是回显'here'- $somevariable 总是包含非空值。或者在您运行的真实代码中是单一 =的,而不是==您发布的
  • 如果它什么都不打印 -您正在运行没有其他部分的代码

    if ($somevariable == 1) {
        echo 'Do Something here';
    }
    

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

  1. 相信你的眼睛。
  2. 检查代码
  3. 再次检查代码。
于 2013-04-30T15:43:48.190 回答
-1

尝试回显该值并查看数据库返回的内容。实际价值是多少?你看到数据库了吗?

$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() 通常被视为相反的函数,但并非总是如此。在这篇文章中,我将解释这些函数之间的区别。

伊塞特()

来自 PHP 手册:

isset — 确定变量是否已设置且不为 NULL

换句话说,只有当变量不为空时它才返回真。

empty() 来自 PHP 手册:empty — 确定变量是否为空

换句话说,如果变量是一个空字符串,它会返回真,假,array(),NULL,“0?,0,和一个未设置的变量。

is_null() 来自 PHP 手册:is_null — 查找变量是否为 NULL

在这里查看更多

https://www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/

于 2013-04-30T15:32:51.230 回答