Php 为什么我的函数返回意外的结果?
以下是我的功能:Php 为什么我的函数返回意外的结果?,php,function,Php,Function,以下是我的功能: function getShortNum($n) { if ( $n < 10000 ) return $n; elseif ( $n < 100000 ) return round( $n / 1000, 1) . "k"; elseif ( $n < 1000000 ) return floor( $n / 1000 ) . "k"; elseif ( $n < 1000000000) r
function getShortNum($n) {
if ( $n < 10000 ) return $n;
elseif ( $n < 100000 ) return round( $n / 1000, 1) . "k";
elseif ( $n < 1000000 ) return floor( $n / 1000 ) . "k";
elseif ( $n < 1000000000) return floor( $n / 1000000) . "M";
else return "Wow!!!";
}
好的,一切都好。就在我将一个字母传递给该函数时,它返回完全相同的东西。例如:
echo getShortNum("N"); // output: N
为什么??我所有的条件都是关于函数中的数字,而不是字母。那么它是如何工作的呢?因为PHP确实如此。它将把字符串“N”转换为整数,这样就可以进行if/else语句中的比较。“N”变为零,这与您的第一次比较相匹配
类型转换是PHP的一个非常重要的方面,因为不完全理解它会导致难以检测的错误和意外的结果
如果您的目标是防止转换非数值,则应使用诸如和等函数检查数据类型。当您将
N
转换为一个数字以比较$N<10000
时,$N
变为0
,这将导致第一个条件为true。(返回$n
,在本例中,返回值为n
)明白了。。thx+1.
echo getShortNum("N"); // output: N