2017-05-20 4 views
0

私は、変数が複数のインクルードの後で設定されていない理由をundestandしません。変数を複数の変数に共有するinclude(php)

はheader.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"); 

} 

accueil.phpで$ aが設定されている変数$を持っています。それはだ

に動作しますが、私のコードは

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がロードされますが、$このファイルに空です。

header.phpの中で設定されたすべての変数はaccueil.php

理由で空のですか?回答

ギヨーム

+0

グローバルの$ A; $ a = 'max'; –

答えて

0

ため

おかげでここ避けるために落とし穴です。関数内の変数 $にアクセスする必要がある場合は、「global $ 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

ありがとうございました!今度はOKです – Guisbou

+0

@Guisbou it's workzz?か否か ? ? –

+0

はい。それは作品です。ありがとうございます – Guisbou

関連する問題