如果循环失败则不是PHP中的if子句

时间:2013-05-30 08:29:13

标签: php

我有以下PHP代码

if ($checkimghash != $imghash)
{

the $checkimghash is var_dumped as this array(2) { [0]=> string(40) "da77c24758c6259274bfa171a32d5c4a4a2cb71c" ["PdfHash"]=> string(40) "da77c24758c6259274bfa171a32d5c4a4a2cb71c", the variable $imghash var_dumps as this
string(40) "da77c24758c6259274bfa171a32d5c4a4a2cb71c, 

为什么即使结果相同,此检查也会运行?我想!=需要传递类型和值检查

4 个答案:

答案 0 :(得分:0)

!=是值,!==是值和类型

答案 1 :(得分:0)

因为您要将数组与字符串进行比较而且它们不相同

尝试将测试更改为

if ($checkimghash[0] != $imghash)

答案 2 :(得分:0)

!=只是比较价值。它的反面是==

  

TRUE 如果$ j在类型杂耍后不等于$ b。

!==正在比较价值和类型。它的反面是===

  

TRUE 如果$ a不等于$ b,或者它们的类型不同。

来源:http://www.php.net/manual/en/language.operators.comparison.php

修改

您的问题中的var_dump结果不清楚。如果要将数组与字符串进行比较,那么它们总是不同的。您可能希望通过$array[0]

将数组元素的值与另一个字符串进行比较

答案 3 :(得分:0)

因为如果$checkimghash是一个数组而$imghash是一个字符串,那么这两个不会直接比较(在任何有意义的意义上),因为你正在比较一个数组(即一个字符串的集合)一个字符串!选择您要比较的数组元素,并在条件中使用它。