为什么我不能将STATUS定义为常量?

Chl*_*loe 2 php constants

当我定义STATUS时,它默认为0.然而所有其他常量都有效.

define('LOCATION',07);
define('STATUS',08);
echo 'x'.STATUS."x\n";exit;
define('TERM_DATE',09);

$ php synchronize.php
x0x
Run Code Online (Sandbox Code Playgroud)

Riz*_*123 8

你的代码工作得很好!但是你的问题出在哪里,你将它定义为八进制值,并且08是一个无效的八进制值,因此删除之后的所有内容都会被删除.

你可以在这里阅读更多相关信息:http://php.net/manual/en/language.types.integer.php

从那里引用:

警告: 如果以八进制整数(即8或9)给出无效数字,则忽略该数字其余部分.

所以你可以把它定义为一个字符串,例如

define('STATUS', "08");
               //^  ^ See the quotes
Run Code Online (Sandbox Code Playgroud)

或者将其定义为有效的八进制数.(对于同一件事情:define('TERM_DATE',09);)