当我定义STATUS时,它默认为0.然而所有其他常量都有效。
define('LOCATION',07);
define('STATUS',08);
echo 'x'.STATUS."x\n";exit;
define('TERM_DATE',09);
$ php synchronize.php
x0x
答案 0 :(得分:8)
您的代码运行正常!但是你的问题出在哪里,你将它定义为八进制值,而08
是一个无效的八进制值,因此删除后的所有内容都会被删除,并且0仍然存在。
您可以在此处详细了解:http://php.net/manual/en/language.types.integer.php
从那里引用:
警告:强> 如果在八进制整数中给出无效数字(即 8 或9),则忽略该数字的其余部分。
因此您可以将其定义为字符串,例如
define('STATUS', "08");
//^ ^ See the quotes
或者将其定义为有效的八进制数。 (同样适用于:define('TERM_DATE',09);
)