尝试从函数中设置变量,并检查它是否在同一行中为false

时间:2015-02-01 23:14:42

标签: php

我正在尝试从函数中设置变量,然后在同一行中检查它是否为false。如果它是假的,我想执行一些代码。

我的代码如下:

  if ($wordid = wordnet_get_wordid_from_word($word) == FALSE) {
db_set_active();
    return $word;
  }

然而,$wordid似乎没有被此设置。

我之前看到过这样的东西被使用过,而且我已经在函数内测试过,返回的值不是空的。

那我在这里做错了什么?是否无法在检查是否为假的同一行上设置变量?

2 个答案:

答案 0 :(得分:0)

$wordis 在此代码中设置。如果你在echo gettype($wordis)后执行if,你会发现它是一个布尔值。它的价值将是对此进行评估的结果:wordnet_get_wordid_from_word($word) == FALSE。请记住,如果评估false它会跳过if语句,这可能就是你认为它不起作用的原因。

如果您需要$wordid = wordnet_get_wordid_from_word($word)并检查是否为假,请使用括号:

if (($wordid = wordnet_get_wordid_from_word($word)) == FALSE) {..

IMO,令人困惑的代码。将它分开。

答案 1 :(得分:0)

简单:

function test() {
    return false;
}

if( !$var = test() ) {
    echo "it's false";
} else {
    echo "it's true";
}

输出:it's false

  

是否无法在检查的同一行设置变量   是否是假的?

以上显示可以完成。

另一个例子:

function hello() {
    return 'hello';
}

if( !$var = hello() ) {
    echo "it's false" . PHP_EOL;
} else {
    echo "it's true" . PHP_EOL;
}


var_dump( $var );

输出:it's true string(5) "hello"