2014-01-26 226 views
0

嘗試使用我製作的庫時,事情有點雜亂。這是我的項目看起來像沒有不必要的內容。php:全局變量混亂

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

當然,你不能把它放在'if'語句中。這不會是一個全球變數。 –

回答

1

您不必將require_once('action.php')放在index.php之上,但是如果您在有限範圍內包含任何內容,那麼您必須手動將其包含的所有變量全部導出爲全局變量。類似的,如果你想在包含文件中使用全局變量,你必須「導入」它們。看這裏用extract來做這樣的事情的例子:https://stackoverflow.com/a/10144260/925196