函数中的不同文件的变量,不使用全局

时间:2016-01-02 13:55:22

标签: php procedural

哎,

我定义了(在config.php中):

$mysql = mysqli_connect (..);

用于连接mySQL数据库。 现在我想在我的函数中使用变量(functions.php):

function x () { $fetch = ($mysql, "SELECT ...")); }

不使用global:

function x () { global $mysql ... }

任何干净的想法(程序性的)?

2 个答案:

答案 0 :(得分:1)

你可以,例如将连接资源传递给您的函数

function x ($mysqli) { $mysqli->... }

答案 1 :(得分:1)

您可以使用Superglobal $ GLOBALS访问全局范围内的变量而不使用global-keyword:

function x() { $GLOBALS['mysql']->... }

Doc:http://php.net/manual/en/reserved.variables.globals.php

我建议创建一个单独的函数,它返回可以使用的Database-Handle / Object而不是变量。 e.g:

function db() { return $GLOBALS['mysql']; }
function x() { db()->... }