2017-05-20 120 views
0

我不明白爲什麼我的變量沒有設置多包含後。共享變量包含多個(php)

在header.php中,我有一個變量$ a在accueil.php

public function defaultShow(){ 

     include(dirname(__FILE__)."/../view/app/header.php"); 
     include(dirname(__FILE__)."/../view/app/accueil.php"); 
     include(dirname(__FILE__)."/../view/app/footer.php"); 

} 

$一個設置。它的作品

,但如果我的代碼是

public function defaultShow(){ 

     self::includeView("app/header");   
     self::includeView("app/accueil"); 
     self::includeView("app/footer"); 

} 

public static function includeView($view){  
     include dirname(__FILE__)."/../view/".$view.".php"; 
} 

加載accueil.php而是$ a。本文件是空的。

在header.php中設置的所有變量是accueil.php

爲什麼是空的?

感謝答覆

紀堯姆

+0

全球$一個; $ a ='max'; –

回答

0

這是一個陷阱,以避免。如果您需要訪問函數中的變量 $ a,則需要說「全局$ a;」在該函數的開始處 處。您需要在同一個文件中爲每個功能 重複此操作。

例子:

將只顯示錯誤。

include('front.php'); 
global $a; 

function foo() { 
    echo $a; 
} 

function bar() { 
    echo $a; 
} 

foo(); 
bar(); 

做正確的方式應該是:

include('front.php'); 

function foo() { 
    global $a; 
    echo $a; 
} 

function bar() { 
    global $a; 
    echo $a; 
} 

foo(); 
bar(); 
+0

謝謝!,現在沒關係 – Guisbou

+0

@Guisbou it's workzz?或不 ? ? –

+0

是的。其作品。謝謝 – Guisbou