今天我非常想知道,如果字符串包含第一個字母有整數,您可以將該值添加到另一個整數變量。如何將字符串添加到PHP中的整數
$a = 20;
$b = "5doller";
$a+=$b;
echo $a;
任何人都可以解釋這是如何發生的,如果我喜歡像「美元5」字符串它不會添加。
今天我非常想知道,如果字符串包含第一個字母有整數,您可以將該值添加到另一個整數變量。如何將字符串添加到PHP中的整數
$a = 20;
$b = "5doller";
$a+=$b;
echo $a;
任何人都可以解釋這是如何發生的,如果我喜歡像「美元5」字符串它不會添加。
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()
這將返回變量類型,並做了開關的情況下或者任何你喜歡的東西。但在我看來,這將是過度編碼,只是使用你的常識,並小心,通常它會沒事的。
PHP不是強類型。
因爲你的字符串的第一個字符是一個整數,您使用+操作它解釋5dollar int和返回25
例如:http://en.wikipedia.org/wiki/Strong_typing#Example