2017-05-20 74 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