当我加载页面index.php
时,为什么不回显$my_header
的index.php
<?php
include 'test.php';
$my_header = 'aaaaaaaaaaaaaaaaaaaa';
?>
test.php的
<?php echo $my_header; ?>
答案 0 :(得分:1)
只需改变这两行:
$my_header = 'aaaaaaaaaaaaaaaaaaaa';
include 'test.php';
此外,您的版本应该给您一个错误!如果不是我会建议你像这样打开错误报告:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>
(顺便说一句:我还建议您使用require_once
,这样脚本只包含一次就会出错!)
答案 1 :(得分:0)
定义上面包含文件的变量见下面的代码
<?php
$my_header = 'aaaaaaaaaaaaaaaaaaaa';
include 'test.php';
?>
test.php的
<?php echo $my_header; ?>
答案 2 :(得分:0)
语句按其出现的顺序执行。这意味着首先你包含一个文件,它试图访问一个变量(它尚不存在),然后你定义它,但它不会被再次访问。< / p>
在尝试使用变量之前,必须确保定义变量。像其他人说的那样;交换语句的顺序,它将起作用。
答案 3 :(得分:0)
来自http://php.net/manual/en/function.include.php
当包含文件时,它包含的代码将继承发生包含的行的变量范围。从那时起,调用文件中该行可用的任何变量都将在被调用文件中可用。
因此,您应该在包含test.php之前设置变量 选项1:
的index.php
<?php
$my_header = 'aaaaaaaaaaaaaaaaaaaa';
include('./test.php');
?>
test.php的
<?php
echo $my_header;
?>
您也可以通过将test.php更改为以下
来实现此目的选项2: test.php的
<?php
function test($text)
{
echo $text;
}
?>
的index.php:
<?php
include('./test.php');
$my_header = 'aaaaaaaaaaaaaaaaaaaa';
test($my_header);
?>