将变量共享到多包含 (PHP) 中



我不明白为什么我的变量在多包含之后没有设置。

在标题.php中,我有一个变量$a

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 已加载,但此文件中$a为空。

header.php 中设置的所有变量在 accueil 中都是空的.php

为什么?

感谢您的回复

纪尧姆

这是一个需要避免的陷阱。如果您需要访问变量 $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();

相关内容

  • 没有找到相关文章

最新更新