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 - 弱势语言的好处和缺点 –