PHP定义不起作用?

我有一个配置文件,我在程序的早期包含并设置它

define('BASE_SLUG','/shop');

我稍后会在这些行中包含另一个文件

echo BASE_SLUG;
if (defined(BASE_SLUG)) {
  echo ' - yes';
} else {
  echo ' - no';
}

我的输出是

/shop - no

这怎么可能? BASE_SLUG具有/ shop的值,我可以回应它,但是后来它说它没有定义

解决方法:

这是定义的函数原型

bool defined ( string $name )

您可以看到它需要一个常量名称的字符串值.你的不是有效的字符串.

if (defined(BASE_SLUG)) {

应该在引号内有常量名称,例如:

if (defined('BASE_SLUG')) {

阅读PHP手册中的这个说明

<?php
/* Note the use of quotes, this is important.  This example is checking
 * if the string 'TEST' is the name of a constant named TEST */
if (defined('TEST')) {
    echo TEST;
}
?> 

Source

上一篇:在C#中,你如何完成与#define相同的事情


下一篇:PHP错误无法在写上下文中使用方法return> value