我有一个问题。我有一个模板文件(template_body.php
)包含在index.php
(include_once("include/template_body.php");
)中
在template_body.php
我有另一个名为header.php
(include("header.php")
)
index.php -> template_body.php --> header.php
现在,在index.php
我有一个布尔登录检查。但我只能访问template_body.php
中的布尔值,而不能访问header.php
中的布尔值。
有任何方法可以实现这一目标吗?
答案 0 :(得分:0)
你应该看看这篇关于php中变量范围的答案:
以下示例正在运行
<强>的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";
确实可以访问变量。
但我对这种行为没有任何解释,所以如果有人能向我解释这一点会很好:)
(两个版本都会显示内容)