php:全局变量混乱

时间:2014-01-26 18:19:00

标签: php global-variables

当我尝试使用我制作的库时,事情变得有些混乱。这是我的项目看起来没有不必要的内容。

lib_vars.php

<?php $lib_var = 10;?>

lib.php

<?php
    require_once('lib_vars.php');
    function lib_func(){
        global $lib_var;
        echo $lib_var;
    }
?>

action.php的

<?php
    require_once('lib/lib.php');
    function action(){
        lib_func();
    }
?>

的index.php

<?php
    require_once('action.php');
    function main(){
        if(true)
            action();
    }
    main();
?>

出于某种原因,我必须将require_once('action.php')置于index.php之上。 如果我将它放在if语句中,它就再也找不到$lib_var了。如果我在index.php中有10个不同的操作,那么我将不得不包含9个不必要的文件。有人知道另一种选择吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您不必将require_once('action.php')置于index.php之上,但如果您在有限范围内包含任何内容,则必须手动将其包含的所有变量导出为全局变量。类似地,如果你想在包含文件中使用全局变量,你必须&#34; import&#34;他们。请参阅此处使用extract执行此类操作的示例:https://stackoverflow.com/a/10144260/925196