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

时间:2015-03-12 15:30:45

标签: php constants

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

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

$ php synchronize.php
x0x

1 个答案:

答案 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);