我正在尝试从函数中设置变量,然后在同一行中检查它是否为false。如果它是假的,我想执行一些代码。
我的代码如下:
if ($wordid = wordnet_get_wordid_from_word($word) == FALSE) {
db_set_active();
return $word;
}
然而,$wordid
似乎没有被此设置。
我之前看到过这样的东西被使用过,而且我已经在函数内测试过,返回的值不是空的。
那我在这里做错了什么?是否无法在检查是否为假的同一行上设置变量?
答案 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"