转换错误?字符串 => int


Wrong Conversion ? String => Int

我在将字符串转换为 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]=> string(6) "30"

此字符串开头有一些不可打印的字符。它看起来像 2 个字符长,但实际上有 6 个。此类字符将导致字符串转换为0如文档所示。

您应该尝试bin2hex字符串以查看我们正在谈论的字节值,然后使用此知识来确定它们的来源。

"2013"字符串也有额外的字符,尽管从外观上看,它们在这种情况下是尾随的。