筆記010 PHP中 == 比較子注意事項

來源:互聯網
上載者:User
最近在進行比較運算的時候,遇到了一些問題,細節問題,平時忽略了,沒想這次問題就出來了。

PHP中的 == 比較子表示:當兩個資料的值相等的時候,返回 true ,反之則返回 false。注意,這裡說的是值相當的時候,結果就為 true,也就是說,這裡並不會去比較值的類型。比如:12 == '12' 結果會是 true。

由於PHP變數的弱類型,很多時候並沒有去刻意地管變數的類型是什麼,而這次出現的問題則就是因為變數類型導致的。

我的問題是出現在使用 array_search 函數的時候。

array_search 的作用是用給定的值到一個資料中進行檢索,說值存在,則返回該值對應的索引。若該值出現多次,則返回第一個檢索到的索引。若值不存在,則返回 false。

我的問題出現在類似於以下的環境下:

<?php$testA = array(    'a' => '123',     'b' => 'iphp8.com',      'c' => '014778',      'd' => '14778',);   echo array_search('14778', $testA);

這時得到的結果會是 c。

由於預設情況下,array_search 並不會去比較值的類型,也就是做 == 比較。純數位時候,哪怕是字串,貌似也是轉為數字進行比較,所以不管有多少個前置0,都沒有關係,"14778" 和 "014778"就是相等的,所以上面的例子中,返回的結果是 c,而不是我們認為的 d。

這個時候,為了得到我們想要的結果,就需要進行 === 比較了,既要比較值,也要比較類型。

而對於 array_search 來說,我們給它的第三個參數給 true 值就可以進行全等比較了。

以上就是筆記010 PHP中 == 比較子注意事項的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.