【问题标题】:Variable from different file in function without using global函数中来自不同文件的变量而不使用全局
【发布时间】:2016-01-02 13:55:21
【问题描述】:

嗯,

我定义(在 config.php 中):

$mysql = mysqli_connect (..);

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

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

不使用全局:

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

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

【问题讨论】:

    标签: php procedural


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      文档:http://php.net/manual/en/reserved.variables.globals.php

      我建议创建一个单独的函数来返回您可以使用的数据库句柄/对象而不是变量。例如:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-22
        • 1970-01-01
        • 2022-08-17
        相关资源
        最近更新 更多