PHP-调用未定义的函数,该函数需要来自不同文件夹并使用命名空间的文件

PHP-调用未定义的函数,该函数需要来自不同文件夹并使用命名空间的文件,php,namespaces,directory,undefined,fatal-error,Php,Namespaces,Directory,Undefined,Fatal Error,编辑:我删除了名称空间,但它仍然不起作用。如果我将文件与blog.php移动到同一个文件夹中,它就会工作。目前,我正在管理文件中再次连接到数据库,但我认为这不是一个解决方案。 这是我发布的第一个问题。我最近开始学习PHP,我真的很喜欢它,但我现在遇到了一个问题。我一直在寻找答案,但找不到任何相关的 这就是我的问题 我试图建立一个简单的博客,我想创建一个管理部分。因此,我创建了一个新文件夹“admin”,并在其中创建了一个文件“index.php”。当我需要连接到数据库的“blog.php”文件时

编辑:我删除了名称空间,但它仍然不起作用。如果我将文件与blog.php移动到同一个文件夹中,它就会工作。目前,我正在管理文件中再次连接到数据库,但我认为这不是一个解决方案。

这是我发布的第一个问题。我最近开始学习PHP,我真的很喜欢它,但我现在遇到了一个问题。我一直在寻找答案,但找不到任何相关的

这就是我的问题

我试图建立一个简单的博客,我想创建一个管理部分。因此,我创建了一个新文件夹“admin”,并在其中创建了一个文件“index.php”。当我需要连接到数据库的“blog.php”文件时,我得到错误:

“致命错误:在C:\xampp\htdocs\Blog\Blog.php的第5行调用未定义的函数Blog\DB\connect()”

在包含所有数据库相关函数的db.php文件中,我使用名称空间Blog\db我不太明白的是,如果我将admin'index.php'文件移动到blog.php所在的文件夹中,它就会工作。

这是两个文件中的代码

blog.php

 <?php 
    require 'functions.php';
    require 'db.php';
    //Connect to the db
    $conn = Blog\DB\connect($config);
    if (!$conn) die('Problem connecting to the db!');
    ?>
谢谢大家!

试试换衣服

$conn = Blog\DB\connect($config);


尽管我不确定这是否可行,因为我不认为这是名称空间问题。

我也有同样的问题,我只是补充了一下
require'../db.php'
在admin/index.php中 它解决了问题,但我不知道为什么会出现这个问题。
我最好的猜测是,当我们需要使用名称空间的文件(比如blog.php使用blog/DB)时,我们需要设置名称空间的文件(DB.php)

我最近在上相同的php课程时遇到了相同的问题。问题是在子目录中包含include会导致文件路径问题。它与名称空间无关

替换
需要'db.php'带有:

 require __DIR__ . '/db.php';
如果您运行的PHP版本低于5.3,请使用:

 require dirname(__FILE__) . '/db.php';
现在,当它包含在/admin/index.php中时,blog和admin子目录的引用都是正确的。

试试这个

require __DIR__ . '/../db.php';
我也在使用PHP,遇到了与您相同的问题。我试过上面这句话,效果很好


注意:我的工作没有别名和名称空间。

检查名称空间和/或添加use Blog\DB\connectphp名称空间(
类似于这些
)已经(不幸地)与文件和目录路径无关。那么,如果我将文件与blog.php移动到同一文件夹中,为什么会有效?我检查了名称空间,并尝试将名称空间添加到blog.php。这个文件使用什么名称空间,db.php中定义了什么名称空间?这是100%的名称空间问题。如果你要否决投票,请说明原因。。。如果你知道一个“更好”的解决方案,如果你把它贴出来就好了。非建设性的否决投票会适得其反。
 require __DIR__ . '/db.php';
 require dirname(__FILE__) . '/db.php';
require __DIR__ . '/../db.php';