我在将字符串转换为int时遇到问题。 数组$ input包含以下值:
array(3) { [0]=> string(6) "30" [1]=> string(2) "01" [2]=> string(9) "2013" }
首先我删除前导零,因为八度陷阱。所以这是我的代码:
foreach ($input as $key => $var) {
$input[$key] = trim($var,"0");
$input[$key] = (int)$var;
}
但不幸的是结果并不令人满意。
array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2013) }
30现在为零?这怎么可能?
答案 0 :(得分:2)
[0]=> string(6) "30"
此字符串在开头有一些不可打印的字符。它看起来像2个字符长,但实际上有6个字符。这些字符会导致字符串被转换为0
,如文档所示。
您应该对字符串尝试bin2hex
以查看我们正在讨论的字节值,然后使用此知识来确定它们的来源。
"2013"
字符串也有额外的字符,但在这种情况下,它们的外观是尾随。