【问题标题】:in_array confused about strict optionin_array 对严格选项感到困惑
【发布时间】:2013-01-17 23:37:58
【问题描述】:

当我使用严格选项时(我被认为是最好的选择,因为我正在将数字与数字进行比较)如果永远不会成真。但没有严格它工作正常!我只是在检查数组是否已经包含 post_id。如果不添加,如果不添加重复。

if (!in_array($post->ID, $cookie_value)) {  
    array_unshift($cookie_value, $post->ID);
}

print_r($cookie_value);

Array ( [0] => 25 [1] => 1 )

那么这里的交易是什么?

【问题讨论】:

  • in_array 在设置 strict 选项时进行类型比较。您的 $post->ID 值与数组中的类型不同。尝试在 $post->ID 上做一个 var_dump 看看 PHP 认为它是什么类型?
  • 我是个笨蛋。我今天要辞职,而我领先。哈。
  • 你能添加var_dump($post->ID, $cookie_value);的输出吗?请注意,var_dump() 将为您(我们)提供类型,而 print_r() 不会

标签: php


【解决方案1】:

为什么首先要使用 strict ,尤其是如果没有 strict 也可以正常工作?如果字符串“2”在数组中,你不希望它匹配数字2吗?除非您的目标是例如在数组中同时包含字符串“2”和数字 2

我很少关心 PHP 认为变量是什么类型。 PHP实现type juggling的方式,我一般不用管。

我认为你不想使用 strict。

【讨论】:

    猜你喜欢
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 2012-04-04
    • 1970-01-01
    • 2019-09-13
    • 2012-07-22
    • 2013-05-13
    相关资源
    最近更新 更多