当我定义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)
你的代码工作得很好!但是你的问题出在哪里,你将它定义为八进制值,并且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);)