php踩坑之類型轉換問題

前段時間寫的代碼運行總有問題,後來一查是由於判斷的問題,判斷前端傳來的字符串是不是預期的值,好比這樣的代碼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

相關文章
相關標籤/搜索