PHP:为什么我的变量总是true而不是false?

PHP:为什么我的变量总是true而不是false?,php,Php,我是PHP新手,正在做学校作业。我只是想用一个函数设置一个布尔变量。但使用以下代码: $alreadyExists = idExists($id); if($alreadyExists) { print 'value was true'; } else { print 'value was false'; } ...other code... function idExists($id) { return false; } 它总是打印“值为真”。我尝试过使函数“r

我是PHP新手,正在做学校作业。我只是想用一个函数设置一个布尔变量。但使用以下代码:

$alreadyExists = idExists($id);

if($alreadyExists) {
    print 'value was true';
} else {
    print 'value was false';
}

...other code...

function idExists($id)
{
    return false;
}
它总是打印“值为真”。我尝试过使函数“return true”、“return false”、我的实际函数代码等。无论函数说什么,变量总是设置为true。为什么?


谢谢

您需要返回
$id
而不是布尔值
true | false
。您的条件语句将处理这个问题,并返回值是true还是false,因为您已经在打印中看到了它

$id = 1; // wherever that's coming from.

$alreadyExists = idExists($id);

if($alreadyExists) {
    print 'value was true';
} else {
    print 'value was false';
}

// ...other code...

function idExists($id)
{

   return $id;

}
  • 您在报税表中对真/假的检查总是如此

  • 如果
    $id
    不存在,它将返回为false


对以下内容进行注释将返回false

// $id = 1;

$alreadyExists = idExists($id);

if($alreadyExists) {
    print 'value was true';
} else {
    print 'value was false';
}

// ...other code...

function idExists($id)
{

   return $id;

}

这里最大的问题是这个函数

function idExists($id)
{
    return false;
}
无论
$id
的值是多少,此函数都返回false,那么为什么要传入变量
$id

即使修复了此函数,也可能导致问题的其他方面包括

你看这段代码,就在这里

$alreadyExists = idExists($id);
函数
idExists()
在读取时立即执行(即第一行so read first executes
$idExists
先执行一次,天知道是什么
$id
值),现在变量
$alreadyExists
被设置(设置!!),仅仅因为您已将该变量分配给函数
idExists()
的返回值,并不意味着通过访问
$alreadyExists
调用
$idExists()
函数被神奇地执行。无论您访问
$alreadyExists
多少次,它的值都保持不变,除非通过赋值运算符或其他方式进行修改

因此,除非此代码存在于使用更新值
$id
调用的函数中,否则
$alreadyExists
变量值将保持不变

$alreadyExists = idExists($id);

if($alreadyExists) {
    print 'value was true';
} else {
    print 'value was false';
}
实际上,我会将其修改为这样,因为在此范围内您只使用了$alreadyExists一次

if(idExists($id)) {
    print 'value was true';
} else {
    print 'value was false';
}

@JayBlanchard但是它返回了
false
-它不应该是false吗?不管函数定义在哪里,上面的语法都可以正常工作,这是php。。。我建议您的代码出现其他问题,因为上面的代码对我来说工作正常。您的代码工作正常:。您的代码中还有一些错误,您没有在此处显示。问题似乎出在
…其他代码中…
。您需要养成这样的习惯,它可以帮助您解决问题。您将获得积分,并鼓励其他人帮助您。