Php变量不会包含在包含的文件

时间:2016-08-22 12:13:22

标签: php

我有一个问题。我有一个模板文件(template_body.php)包含在index.phpinclude_once("include/template_body.php");)中 在template_body.php我有另一个名为header.phpinclude("header.php")

的文件
index.php -> template_body.php --> header.php

现在,在index.php我有一个布尔登录检查。但我只能访问template_body.php中的布尔值,而不能访问header.php中的布尔值。

有任何方法可以实现这一目标吗?

2 个答案:

答案 0 :(得分:0)

你应该看看这篇关于php中变量范围的答案:

Reference: What is variable scope, which variables are accessible from where and what are "undefined variable" errors?

以下示例正在运行

<强>的index.php

<?php
  $test = "test";
  include_once("file1.php");
?>

<强> template_body.php

<?php
  include("header.php");
?>

<强>的header.php

<?php
  echo $test;
?>

<强>输出

test

所以,从我能读到的内容来看,这是一个范围问题。

此致

埃里克

答案 1 :(得分:0)

我找到了一个问题的解决方案:

如果我使用

include_once("include/template_body.php");
include_once("include/header.php");

它不起作用......如果我使用

include_once __DIR__ ."include/template_body.php";
include_once __DIR__ ."include/header.php";

确实可以访问变量。

但我对这种行为没有任何解释,所以如果有人能向我解释这一点会很好:)

(两个版本都会显示内容)