【发布时间】:2018-08-15 23:09:45
【问题描述】:
我发现了一些我无法解释的东西。 $post_id 设置为9,$bookmarks 是一个数组,其中有[5] => true。如果我将die($post_id) 移到此块之外,并且将它放在之前或之后 无关紧要,$post_id 将包含9 但在块内既没有类型也没有价值。怎么可能?
if ( !array_key_exists($post_id, $bookmarks) ) {
$bookmarks[$post_id] = true;
die($post_id);
}
UPD:我已经编辑了代码,现在应该不会让您感到困惑。
【问题讨论】:
-
我不明白的是你正在检查它是否 not 在数组中,但想要返回“true”; 为什么?
-
我认为您正在寻找
array_key_exists。in_array将查看值是否在数组中,但看起来您使用 post_id 作为键,值作为布尔值。 -
@FunkFortyNiner 不完全,我检查它是否不在数组中,如果它不存在,我将它添加到数组中。我的意思是它仍然包含9,那我为什么不得到9,只是空白屏幕?
-
错误报告中的任何内容以及 var_dump() 揭示了什么?
-
从这段摘录中无法重现。你也不应该检查数组键吗? (
in_array只查找值,没有严格匹配:9=TRUE, DUN DUN DUNNN)
标签: php arrays if-statement logic conditional