PHP/5.5.6爲什麼明顯的類型不匹配會提前返回?
可能有人請我爲什麼,如果我分配一個變量爲一個字符串,後來皈依說串爲int解釋,然後比較,情況如下字符串的原始值會返回一個真實的?
的arrayOfValues是數字的int數組像這樣-1,0,0,2,1 ...等
function getScore($arrayOfValues){
$result = 'N/A';
foreach($arrayOfValues as $item){
if($item > 0) { $result = 0; break;}
}
echo $result; // outputs 0
if($result == 'N/A') { return -1; } //code here passes. WHY?
echo $result; // outputs never makes it
// CODE DOES based upon values calculate score
return $result;
}
的呼叫到所述類中的函數具有以下
echo $foo->getScore($array); // outputs -1
如果我將函數中的邏輯更改爲$ result = -1,並且檢查爲$ result < 0;檢查現在按預期通過。爲什麼之前失敗?我知道存在類型不匹配,但是計算機是否也意識到了這一點?
更多討論apropos你的問題:http://stackoverflow.com/questions/2025353/strong-vs-weak-typing和http://stackoverflow.com/questions/3376252/what - 弱勢語言的好處和缺點 –