【发布时间】:2014-09-28 13:29:26
【问题描述】:
$value = "32 is my number";
if ($value == (integer) $value) {
$value = (integer) $value;
}
echo $value; // always 32
我了解why this does not work。仅当它实际上只是一个整数时,我将如何将字符串转换为整数?
这行得通,但它太丑了。看来应该有更好的办法:
$value = "32 is my number";
$new_value = $value;
$new_value = (integer) $new_value ;
$new_value = (string) $new_value;
if ($value == $new_value) {
$value = (integer) $value;;
}
澄清: “32 is my number”应该是一个字符串, "32" 应转换为整数, 不应更改“32.01”。它是数字,但(整数)“32.01”变为 32
【问题讨论】:
-
is_int 将始终为 false,因为他必须处理 字符串,可能仅包含数字。