首页 > 解决方案 > 无法从不同的php文件传递变量

问题描述

这与将变量从一个 php 包含文件传递到另一个文件不同:全局与非

我正在尝试制作一个简单的 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. 在 index.php 中需要 functions.php(使用 require)

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

  3. db_functions.php 中需要 config.php(使用 require)

现在,如果我想使用$linkdb_functions.php 中的变量,它不起作用。显示一个通知Undefined variable: link in db_functions.php on line 10

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

提前致谢

标签: php

解决方案


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

前任。 $GLOBALS['link']

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


推荐阅读