我试图排除一些代码,发生了一些事情,我无法做出任何意义......我有一个$forum
对象,其中包含一个threadExists
方法,该方法返回找到任何结果的关联数组,否则返回false
。在作为条件的变量赋值过程中丢失数组
下面将打印为预期的数组:
if (!$test = $forum->threadExists($thread_id)) {
// do something
}
echo '<pre>';
var_dump($test);
echo '</pre>';
exit;
然而;通过增加一个条件,屏幕会简单地打印bool(true)
:
if (!$test = $forum->threadExists($thread_id) || $test['topic_id'] != $topic_id) {
// do something
}
echo '<pre>';
var_dump($test);
echo '</pre>';
exit;
为什么阵失去了什么?
我使用PHP 5.4.12。
['='的优先级低于'||'或'!='](http:/ /us.php.net/manual/en/language.operators.precedence.php)。 – DCoder
'threadExists'是一个可能返回'array'的函数的错误名称:) –
这个问题似乎是无关紧要的,因为答案可以在语言手册中找到。 –