我在这些PHP脚本中做错了什么?

时间:2013-12-25 08:16:52

标签: php include

这是config.php

<?php
define("DB_SERVER","localhost");
define("DB_NAME","photo_galley");
define("DB_USER_NAME","root");
define("DB_PASSWORD","");
echo DB_SERVER."config file<br>";
?>

这是classes.php

<?php
    var_dump(include_once("config.php"));
    echo DB_SERVER."class file<br/>";
?>
<?php
    class MySQLDatabase{...

这里有第三个文件temp.php

<?php
    include_once("includes/classes.php");
    echo DB_SERVER." tem.php <br/>";
?>

classes.php和config.php都在includes文件夹中,包含文件夹在photo_gallery文件夹中,temp.php在photo_gallery文件夹中 我在浏览器中打开classes.php时的样子。 enter image description here

它显示了我想的东西。首先显示来自config.php文件的DB_SERVER值,然后显示classes.php文件 但是当我在任何其他文件中包含classes.php文件时,如在temp.php中,如第三段代码所示,它提供了一些我不明白的东西 就这个 enter image description here

我不明白输出。 我认为它的输出应该与classes.php的输出相同,另外一行显示来自temp.php的DB_SERVER值。

当我在浏览器中打开temp.php时,您能否告诉我为什么这些常量显示为未定义?
如果int中的include函数成功,如int(1)所示那么为什么不显示config.php中的DB_SERVER值?

5 个答案:

答案 0 :(得分:1)

temp.phpconfig.php文件路径错误。这就是为什么你得到了未定义的常量。

包含目录中的

config.php文件。但是你的temp.php文件在include目录之外。

在class.php中

,您可以使用$_SERVER['DOCUMENT_ROOT']添加完整路径,这样您就可以在所有文件中访问相同的文件。

答案 1 :(得分:1)

您在temp.php中的错误位置添加了config.php。删除路径。另外你应该使用require_once而不是include_once,因为config.php是至关重要的,所以缺少它应该会停止脚本。

答案 2 :(得分:1)

当你包括classes.php时,config.php的相对路径是include / config.php。

<?php
include_once("includes/config.php");

class MySQLDatabase{...

答案 3 :(得分:1)

你的脚本很好。您刚刚遇到服务器配置问题。

他们在我的工作正常:

enter image description here

答案 4 :(得分:0)

所以我们可以说当我们使用require include函数时,它只是将上述文件中的代码复制到该函数调用的文件中。所以当我从类文件中调用config时,它工作正常。但是当我从temp调用类时它只是从那里复制代码但是对于临时文件配置文件位置是不同的因此它不起作用。我是正确的开发人员......