【问题标题】:Defining Globals inside global variables PHP在全局变量 PHP 中定义全局变量
【发布时间】:2013-05-25 14:14:23
【问题描述】:

我总是在我的代码中上下移动,向函数添加和删除全局变量。

是否可以将全局变量中的全局变量传递给函数以保存每次在函数中定义它们?如果没有,有更好的方法吗?

我的目标是在每个页面的顶部都有一个全局变量索引,而不必担心必须在函数中定义它们。

global $site;
$site = "global $link, $create, $populate, $delete, $withdraw";

$host = "";
$username = "";
$password = "";
$database = "";

$link = mysqli_connect("$host", "$username", "$password", "$database");

function display() { global $site; // code }
function populate() { global $site; // code }
function create() { global $site; // code }
function withdraw() { global $site; // code }

    //output

【问题讨论】:

    标签: php function global-variables


    【解决方案1】:

    我不确定我是否理解得很好。但是你为什么不制作$site 和数组而不是字符串呢?

    像这样:

    $host = "";
    $username = "";
    $password = "";
    $database = "";
    
    $link = mysqli_connect("$host", "$username", "$password", "$database");
    
    $site = array(
      'link'     => $link,
      'create'   => $create,
      'populate' => $populate,
      'delete'   => $delete,
      'withdraw' => $withdraw,
    );
    
    function display() {
      global $site;
      // Here you can access & modify your $site array
    }
    

    【讨论】:

    • 生病检查一下,对此做了一些进一步的研究,这似乎不是最佳实践,因为除非您将它们列在每个函数的顶部,否则您可能无法跟踪哪些变量被用作全局变量;如果你这样做,你不妨定义它们。如果您在大量函数中一遍又一遍地使用完全相同的变量,这将很有用。再次感谢 theo +1。
    猜你喜欢
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    相关资源
    最近更新 更多