php导入包含多个相互调用的函数



所以我有两个文件:

test.php

<?php
require 'tools/tools.php';
check();

tools.php

<?php
function initDB(): PDO{
require 'db-config.php'; //contains just the $DB_ vars definition
echo ('db connection start...');
return new PDO($DB_DSN, $DB_USER, $DB_PASS, $BD_OPTIONS);
}
function check(){
echo ('check start...');
$PDO = initDB();
... // Do other stuff
}

我是php的新手,但这对我来说很奇怪,如果在tools.php中添加对check((的调用,一切都很好,check((调用initDB((并继续他的工作。

但如果我执行test.php,似乎只调用了check((函数,而且它似乎在initDB((调用时崩溃了。

我试着用回声检查它,看看它停在哪里,用check.php我从来没有看到"数据库连接启动…"已打印,只有"检查开始…"什么都没有。

有什么东西我不懂进口/需求吗?我假设我会加载所需文件的全部内容,并且它可以在导入它的文件中使用(require的"db-config.php"工作正常(,由于initDB((已经和check((在同一个文件中,我不明白它为什么不能访问它。

多亏了@JasonK,你向我展示了如何显示错误,才得以解决。

正如@Rocket Hazmat所说,这个错误确实与需要db-config.php有关;

由于include/request只导入文件的内容,而不是简单地链接到它,因此所包含文件上的任何相对路径现在都是相对于执行inlcude/request的文件的。

最新更新