如何将php变量传递给包含页面?

时间:2014-11-27 07:27:17

标签: php variables

当我加载页面index.php时,为什么不回显$my_header

的index.php

<?php
include 'test.php';
$my_header = 'aaaaaaaaaaaaaaaaaaaa';
?>

test.php的

<?php echo $my_header; ?>

4 个答案:

答案 0 :(得分:1)

只需改变这两行:

$my_header = 'aaaaaaaaaaaaaaaaaaaa';
include 'test.php';

此外,您的版本应该给您一个错误!如果不是我会建议你像这样打开错误报告:

<?php
    error_reporting(E_ALL);
    ini_set("display_errors", 1);
?>

(顺便说一句:我还建议您使用require_once,这样脚本只包含一次就会出错!)

请参阅:http://php.net/manual/en/function.require-once.php

答案 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);
?>