前段時間寫的代碼運行總有問題,後來一查是由於判斷的問題,判斷前端傳來的字符串是不是預期的值,好比這樣的代碼php
<?php $Input = '2,321'; if ($Input == 2) { echo '相等'; } else { echo '不等'; }
這樣輸出的結果是相等,而一旦去掉逗號就會輸出不等前端
略微思考和驗證了下,這是由於php的隱式類型轉換形成的問題函數
因爲php是弱類型語言,能夠將不一樣類型的變量進行比較,比較的時候php便會嘗試進行轉換類型,'2,321'會被嘗試轉換爲數字code
經過手動調用intval函數對'2,321'進行轉換獲得整數2,正好與右邊的2相等,因此爲true字符串
不過我有點不清楚爲何不是2被隱式轉換爲字符串2呢,我嘗試了更換左右結果同樣,這個優先級是如何肯定呢?class