我在尝试将某些数值转换为字符串或整数时遇到了一些问题。
$value = 0180; //without format
$conversion = (string) $value;
$conversionInt = (int) $value;
那段代码给了我价值' 1'我不知道怎样才能获得价值' 180' (是我需要的)。我也尝试从php获得strval()函数并得到相同的结果。
答案 0 :(得分:1)
阅读文档here。
<?php
$value = "0180"; //without format it is octal notation, with format it is a string
$conversion = (string) $value;
$conversionInt = intval($value);
echo $conversion;
echo "ad";
echo $conversionInt;exit;
答案 1 :(得分:0)
将其更改为:
$value = "0180";
$conversion = $value;
$conversionInt = (int) $value;
答案 2 :(得分:0)
这是一个八进制数。 PHP将其视为八进制,因此如果您自己键入值,请在引号中键入它。如果您将值作为返回值,那么它是一个字符串,而不是一个数字。因此,如果它是一个字符串,那么您可以使用 ltrim :
$str = ltrim('0180', '0');
为什么当你输入八进制时它给你的确是“1”,因为在PHP 7之前,如果在八进制整数中给出了无效的数字(即8或9),其余的号码被忽略了。从PHP 7开始,会发出一个解析错误(PHP Manual)。在您的情况下,此无效数字为“8”,因此只有一个有效数字:“1”。