【问题标题】:Pass and print a $_GET variable through an included file通过包含的文件传递并打印 $_GET 变量
【发布时间】:2015-09-09 07:45:41
【问题描述】:

我有一个 php 文件 index.php 和它的 url 是index.php?var=item 我在index.php 中定义了get 变量

在 index.php 中

<?php
    require "included.php";
    $var=$_GET['var'];
?>

我在included.php 中回显了这个变量,如下所示

在included.php中

<?php
    echo $var;
?>

当我启动index.php?var=item 时,它显示一个错误,即included.php 中未定义var?

如何克服这个问题?我想从 url 在index.php 中定义一些变量,并在包含的文件中做一些工作。

【问题讨论】:

  • 在包含文件之前需要设置$var
  • 我不知道为什么这个问题被否决了。这是一个初学者的问题 - 但这不是拒绝它的理由。

标签: php variables


【解决方案1】:

就像 Joachim Martinsen 作为评论发布的一样(我不知道他为什么没有刚刚回答),您必须在包含您的文件之前设置 $var

<?php
    $var=$_GET['var'];
    require "included.php";
?>

包含在 PHP 中基本上就像将一个文件与其他文件连接起来一样。所以你的原始代码会导致:

<?php
    echo $var;
    $var=$_GET['var']; 
?>

这显然是行不通的,因为变量在被赋值之前就被回显了。

【讨论】:

    【解决方案2】:

    在包含另一个文件之前在您的 PHP 代码中设置的任何变量都可以在那里工作。包含的文件不会知道在包含后声明或设置的任何其他变量。

    index.php 中,执行以下操作:

    <?php
        if(isset($_GET['var'])) {
            $var=$_GET['var'];
        }
        require "included.php";
    ?>
    

    然后访问$var 值,就像您在included.php 中已经尝试的那样。

    在我写这个答案时,我可以看到刚刚发布了一个类似的答案。很抱歉还是发布了它,我认为它包含更多解释。

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多