PHP数组看起来不一样,为什么?

时间:2016-01-06 10:14:57

标签: php

update aktier
set aktie2 = (select aktie from aktie2 where aktie2.datum = aktier.datum)
where aktie2 is null;

我期待第一句显示"数组相等"。但它并没有。错误在哪里?

2 个答案:

答案 0 :(得分:3)

我相当确定老鼠不是兔子;)

<?php $a=array("mouse",true); $b=array("rabbit","hedgehog"); if($a==$b) echo"Arrays are equal"; if($a===$b)echo"Arrays are identical"; ?> 比较值(==,值相同)
123=="123" -> true比较值,然后键入(===,值相同,类型不相同。)

它们并不完全相同,因为它们都是数组。它们具有不同的值并且被比较,因此它们不相等或相同。您的示例已修改:

123=="123" -> false

一个非常简单的片段来解释逻辑(这远非完美,只是一个例子):

$a=array("mouse",true);
$b=array("mouse","true");
if($a==$b) echo"Arrays are equal"; // this will be shown, values match
if($a===$b)echo"Arrays are identical"; // this wont. Values match but types don't

答案 1 :(得分:1)

正如其他答案中所提到的,这不是php比较运算符的工作原理。

如果要检查两个值的类型是否相同:

T

如果您(更具体地说)想要检查它们是否都是数组:

if(gettype($a)==gettype($b))

如果您知道它们是数组,并且只想检查它们的长度是否相同:

if(is_array($a) && is_array($b))

如果你想同时做两件事

if(count($a)==count($b))