我有一个配置文件,我在程序的早期包含并设置它
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;
}
?>