2

私がテストした配列はnullだと確信しています。var_dump(array)版画もやってますarray(0) { }

しかし、テスト$this->assertNull($array);は失敗します。
逆に、コードの下でテストすると、状態に入りifます:

if ($array == null) {
    echo "Entered";
} else {
    echo "Not Entered";
}

なぜそうなのかわかりません。理由を知っている人がいたら教えてください。

4

1 に答える 1

5

array(0) { }空の配列です。

null配列がまったくない場合。

それらは同じものではありません。

== の問題は、値を一致させるためにジャグリングを入力しようとすることです。空の配列はそのまま「偽」ですnull

違いを確認したい場合は、===代わりに使用してください。これは、ジャグルを入力せず、タイプを比較します。

$array1 = null;
$array2 = array();
if ($array1 == null) echo '1';     // $array1 is "similar to" null.
if ($array1 === null) echo '2';    // $array1 is null
if ($array2 == null) echo '3';     // $array2 is "similar to" null
if ($array2 === null) echo '4';    // $array2 is null

>>> 123

比較演算子の詳細については、こちら を参照してください

于 2013-07-28T17:55:19.550 に答える