PHP中的if循环失败


if loop failing not if clause in 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, 

为什么这个检查在结果相等的情况下还在运行?我认为!=需要通过类型和值检查

因为你在比较数组和字符串,而它们是不一样的

尝试将测试更改为

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

!

!=只比较值。相反是==

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

!==同时比较值和类型。相反的是===

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

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

编辑

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

比较数组中一个元素的值与另一个字符串的值

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