"Array item"常数"define"仅显示 0 而不是整数



我声明了一个数组项目" 0859",但是当我显示数组项目时,它仅显示0,而不是整数" 0859"。

在常数中定义我将值设置为" 01238",结果与我的数组相同,它仅显示值0,而不是整数01238。我想进一步了解数组item andray item的原因从其中的0开始,值仅显示0,而不显示整个数字

array

<?php
  $num = [0859];
  echo $num;
  output: 0
  Why not the the output is "0859"
?>

常数定义

<?php
  define(myNum, 01238);
  echo myNum;
  output: 0
  Why not the the output is "01238"

?>

我正在使用Wamp PHP版本5.5.12

请启发我为什么我只能获得输出0而不是整数

如果您正在运行PHP7,则可能应该查看此答案。

如链接的答案中所述:

这来自对整数,尤其是八个的变化 在php7中处理(与PHP5相反(。

无效的八达字母

以前,包含无效数字的八重文字是 默默截断(0128被视为012(。现在,一个无效的八进制 文字将导致解析错误。

将它们用作字符串或实际整数

$ a =阵列(1,8,9,12(;//整数

$ a = array(" 00001"," 00008", " 00009"," 00012"(;//字符串

您可以在此处找到有关整数/八分音的更多信息:http://php.net/manual/en/language.types.integer.php

Qirel和他的回答充分信用-https://stackoverflow.com/a/40736053/2288334

这很可能是由于PHP如何处理过去默默地解析的内容现在不是造成的。基本上,PHP7认为您试图将八分之一作为数组的唯一值,但无效。

供参考:http://php.net/manual/en/migration70.incompatible.php#migration70.compatible.integers.integers.invalid-octalshttp://php.net/manual/en/language.types.integer.php

相关内容

最新更新