我的代碼中有一條if語句與以下內容類似,並且我花了我一直的時間來弄清楚問題所在。
$a = 0;
if($a == 'something')
{
//this was being output when I didn't want it to be
}
使用
$a = '0';
固定的,但我真的不知道是怎麼回事。
我的代碼中有一條if語句與以下內容類似,並且我花了我一直的時間來弄清楚問題所在。
$a = 0;
if($a == 'something')
{
//this was being output when I didn't want it to be
}
使用
$a = '0';
固定的,但我真的不知道是怎麼回事。
一個字符串,一個整數。 PHP會在兩者之間根據需要,翻譯,除非你正在使用的「嚴格」運營商:
(0 == '0') // true
(0 === '0') // false (types don't match).
在你的情況,找你整數0比較字符串「某物」。 PHP會將字符串'something'轉換爲整數。如果這裏根本沒有數字,它會變成一個整數0,這使得你的比較是真實的。
只是一個猜測,但我認爲它試圖將字符串轉換爲整數。
intval('something')
我預計將返回0
想要進行比較的數值($a = 0;
)轉換爲字符串。在這種情況下,字符串被轉換爲數字,如果開頭沒有數字,PHP會將字符串轉換爲0,因此爲真。
然而在另一種情況下,你競選了兩個不同的字符串,所以它是false。
很快,謝謝! – Josh