1

何らかの理由で、foreach ループを使用して配列を反復処理すると、キーと文字列を比較する条件が失敗します。私の配列には 2 つのインデックスがあり、最初のインデックスは整数で、2 番目のインデックスは文字列です。

$firmas[] = $credito['acreditado'];
$firmas['cbi'] = "LIC. MARCELA SOTO ALARCÓN";

ループがその瞬間のキーが文字列であることがわかったときに何か他のことをしたいのですが、何らかの理由で整数インデックスを評価すると結果がtrueになります。

 foreach($firmas as $key => $firma){
            var_dump($key);
            var_dump($key=='cbi');die();
        }

出力は

int(0) bool(true) 

しかし、ご覧のとおり、条件は文字列 'cbi' を探しているため、結果は整数インデックスでは false になり、文字列では true になります。

ここで何が起こっているのですか?

4

1 に答える 1

2

PHP では、すべての文字列は と等しくなりますが、同等で0はありません。===の代わりに使用してみてください==

補遺:数字で始まらないすべての文字列は に等しくなり0ます。

于 2012-05-21T21:54:35.933 に答える