我不明白为什么我的变量在多包含之后没有设置。
在标题.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();