无法传递来自其他php文件的变量

时间:2019-04-10 03:37:29

标签: php

这不是该Passing a variable from one php include file to another: global vs. not

的重复项

我正在尝试制作一个简单的php项目,其中有用于数据库连接(config.php),数据库函数(db_functions.php),常规函数(functions.php)和索引文件(index.php)的其他文件。

我在config.php中设置了数据库连接-

$link = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME) or die(mysqli_error());

此连接正常工作(在index.php上测试)。 DB_HOST和其他常量在config.php文件中声明。现在,我将我的php文件连接成这样-

  1. functions.php是index.php中必需的(使用require)

  2. function.php中需要db_functions.php(使用require)

  3. db_functions.php中
  4. config.php是必需的(使用require)

现在,如果我想在db_functions.php中使用$link变量,它将无法正常工作。显示通知Undefined variable: link in db_functions.php on line 10

我正在db_functions.php上的函数中调用$link,在db_functions.php上一次声明global $link也不起作用。我必须在db_functions.php的每个函数中声明global $link。这很烦人,有什么方法可以避免多次使用?还是在不声明全局的情况下解决问题?

预先感谢

2 个答案:

答案 0 :(得分:2)

您将需要使用global或使用一些超级全局变量来存储和访问。没有办法。在这两种情况下,您最终都会编写额外的一段代码。

答案 1 :(得分:0)

蒂姆说的是正确的,另一种没有实现OOP的方法是使用超全局$GLOBAL

例如 $GLOBALS['link']

参考:https://www.php.net/manual/en/reserved.variables.globals.php