PHP 为什么这个简单的数组显示不正确的值
PHP Why is this simple array showing incorrect value
这很简单,但我不明白为什么当我从这个 PHP 数组 echo $num[3]
时得到 0。
$num=[00000004,00000002,00000005,00000009]; echo $num[3];
由于前导零,它必须是字符串,而不是数字:
$num=['00000004','00000002','00000005','00000009']; echo $num[3];
数据存储不正确,它们以数字形式存储,但它们是字符串,因此需要以字符串形式存储。当我 运行 你的代码抛出一个错误
Parse error: Invalid numeric literal in [...][...] on line 2
下面的代码将 return 00000009
$num=['00000004','00000002','00000005','00000009']; echo $num[3];
你的语法不正确,试试这个
$num = array("00000004","00000002","00000005","00000009");
echo $num['3'];
基于Integers手册
To use octal notation, precede the number with a 0 (zero). To use
hexadecimal notation precede the number with 0x. To use binary
notation precede the number with 0b.
您的值实际上代表八进制表示法,这就是您导致问题的原因。
将它们转换为字符串:
$num=[
'00000004',
'00000002',
'00000005',
'00000009'
];
echo $num[3];
注意:- 从 Php7 开始,它会给你 Parse error: Invalid numeric literal
这很简单,但我不明白为什么当我从这个 PHP 数组 echo $num[3]
时得到 0。
$num=[00000004,00000002,00000005,00000009]; echo $num[3];
由于前导零,它必须是字符串,而不是数字:
$num=['00000004','00000002','00000005','00000009']; echo $num[3];
数据存储不正确,它们以数字形式存储,但它们是字符串,因此需要以字符串形式存储。当我 运行 你的代码抛出一个错误
Parse error: Invalid numeric literal in [...][...] on line 2
下面的代码将 return 00000009
$num=['00000004','00000002','00000005','00000009']; echo $num[3];
你的语法不正确,试试这个
$num = array("00000004","00000002","00000005","00000009");
echo $num['3'];
基于Integers手册
To use octal notation, precede the number with a 0 (zero). To use hexadecimal notation precede the number with 0x. To use binary notation precede the number with 0b.
您的值实际上代表八进制表示法,这就是您导致问题的原因。
将它们转换为字符串:
$num=[
'00000004',
'00000002',
'00000005',
'00000009'
];
echo $num[3];
注意:- 从 Php7 开始,它会给你 Parse error: Invalid numeric literal