繁体   English   中英

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

[英]what am i doing wrong in these php scripts?

这是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时,classes.php和config.php都在include文件夹中,includes文件夹在photo_gallery文件夹中,temp.php在photo_gallery文件夹中。 在此处输入图片说明

它显示了我的想法。 首先显示config.php文件中的DB_SERVER值,然后显示classes.php文件中的值,但是当我将CLASS.php文件包含在temp.php中的任何其他文件中时,如第三段代码所示,它给出的内容我在这里不明白它 在此处输入图片说明

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

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

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

包含目录中的config.php文件。 但是您的temp.php文件位于includes目录之外。

在classes.php中,您可以使用$_SERVER['DOCUMENT_ROOT']添加完整路径,以便可以在所有文件中访问相同路径。

您从temp.php错误位置包含config.php。 删除路径。 另外,您应该使用require_once而不是include_once因为config.php是至关重要的,因此缺少它应该停止脚本。

当包含classes.php时,config.php的相对路径为include / config.php。

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

class MySQLDatabase{...

您的脚本很好。 您只是服务器配置有问题。

他们在我的工作正常:

在此处输入图片说明

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM