2013-03-18 65 views
1

今天我非常想知道,如果字符串包含第一個字母有整數,您可以將該值添加到另一個整數變量。如何將字符串添加到PHP中的整數

$a = 20; 
$b = "5doller"; 
$a+=$b; 
echo $a; 

任何人都可以解釋這是如何發生的,如果我喜歡像「美元5」字符串它不會添加。

回答

0

PHP提供了一個類型轉換philosofy,這將自動轉換的類型的運行時數據取決於上下文。這可能有它的優點和缺點,有人反對它,認爲沒關係的人(就像生活中的幾乎所有事物一樣)。

有關其行爲的詳細信息,請有PHP文件一看:http://www.php.net/manual/en/language.types.type-juggling.php

它將嘗試看到string作爲integer如果使用算術運算符,以減輕你的生活「+」(檢測第一個字符「5」),但如果處理不當,會導致奇怪的行爲。

這並不意味着它沒有類型,$ b實際上是string,只是它試圖在運行時轉換它,但$ b仍然會保留爲string

要對此進行檢查和/或防止怪異的行爲,你可以使用PHP的本地函數檢查類型:

$a = 20; 
$b = "5doller"; 
if(is_integer($b)){ 
    $a+=$b; 
} elseif (is_string($b)) { 
    $a.=$b; 
} 
echo $a; 

或者你可以使用gettype()這將返回變量類型,並做了開關的情況下或者任何你喜歡的東西。但在我看來,這將是過度編碼,只是使用你的常識,並小心,通常它會沒事的。