在PHP中转换为字符串或int类型

时间:2015-12-14 09:49:59

标签: php type-conversion

我在尝试将某些数值转换为字符串或整数时遇到了一些问题。

$value = 0180; //without format
$conversion = (string) $value;
$conversionInt = (int) $value;

那段代码给了我价值' 1'我不知道怎样才能获得价值' 180' (是我需要的)。我也尝试从php获得strval()函数并得到相同的结果。

3 个答案:

答案 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”。