在头文件中定义PHP常量不起作用?

时间:2014-09-13 22:21:58

标签: php constants

我尝试在config.php文件中定义常量。它的主要用途是配置,我相信你猜对了。但它没有用。这是我的config.php文件:

<?php
    define("KPEREQUEST", "0", true);
    define("KPERESPONSE", "1", true);

    define("KPEGET", 0, true);
    define("KPEPOST", 1, true);
?>

这是我包含config.php并打印定义kPAPost的结果:

KPEPOST: ""

但是如果我在index.php中定义常量并且我从index.php中打印它们,那么这是结果:

KPEPOST: "1"

**编辑**

继承我的index.php文件:

<?php
    $title = "API Documents";
    include 'header.php';
    include "config.inc.php";

    echo "KPEPOST: \"" . KPEPOST . "\""; 
?>

<?php include 'footer.php'; ?>

我已经看到这在wordpress,magento等上完成了一百万次。我不知道为什么这不起作用我已经做了大量的研究来搞清楚但我已经死路一条现在。任何帮助,将不胜感激。为什么我不能在配置文件中定义常量并使用包含配置文件的文件中的define?

2 个答案:

答案 0 :(得分:1)

听起来你只是在你的包含路径中没有 config.php (或config.php的特定副本)。

建议

  1. 为整个网络应用定义根 index.php ;
  2. 这样做:

    define('BASE_DIR', realpath(__FILE__));
    
  3. 然后你可以这样做:

    require_once BASE_DIR.'config.php';
    
  4. 进一步阅读

答案 1 :(得分:0)

另一种可能的解决方案是在include期间在文件名前使用./。我无意中发现了它。

define("kPEPost", "1");

和include:

include("./header");
include("./includes/config.inc.php");