【问题标题】:Included pages receive variables? [duplicate]包含的页面接收变量? [复制]
【发布时间】:2012-09-18 00:25:47
【问题描述】:

在我的脚本中,我根据变量选择要包含的页面。

包含的页面是否接收在主页中定义的变量?或者我必须重新定义它们?

如果是这样,将变量传递到包含页面的最佳方法是什么?

我试过 include("page.php?var=".$var)

但似乎实际上试图包含具有该字符串名称的文件。

建议?

【问题讨论】:

  • 请先了解该功能。应涵盖您的所有问题:php.net/include。如果您没有时间阅读,请留意变量范围

标签: php variables include scope


【解决方案1】:

如果您在包含页面之前定义变量,则不需要任何查询字符串。您的变量将在包含的页面中以名称访问。例如

$name = "Awais"
include("page.php");

然后在page.php

 echo $name; //will print Awais

【讨论】:

    【解决方案2】:

    已经在第一页范围内的变量已经在第二页中定义了。

    【讨论】:

      【解决方案3】:

      您最好在主页中自行设置变量。 include 尝试包含一个本地文件,而不是 HTTP GET 请求,但无论如何设置变量,您就可以使用它们。

      【讨论】:

        【解决方案4】:

        如果您定义了$var = 1,然后在include("page.php"); 之后,变量可以在该文件中访问,因为它只不过是您已有的扩展。

        【讨论】:

          【解决方案5】:

          这... "include("page.php?var=".$var)" 不起作用

          请尝试以下方法:

          page1.php

          <?php
          
          $dog_name = "scruff";
          
          include("otherpage.php");
          
          ?>
          

          otherpage.php

          <?php
          
          echo $dog_name;
          
          ?>
          

          这将在 page1.php 上输出:

          scruff
          

          正如midnightlightning 所说:“已经在第一页范围内的变量已经在第二页中定义了。”

          【讨论】:

            【解决方案6】:

            包含的页面是否接收在主页中定义的变量?

            是的,您包含的代码在同一范围内。这也是记录在案的行为,请参阅include

            $var = 'value';
            include('page.php'); # has $var defined now.
            unset($var);
            include('page.php'); # has $var undefined now.
            

            所以你可以看到,没有必要重新定义它们。

            但您可能希望将其分开,因为它有副作用,请参阅:

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-08-07
              • 2010-10-30
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-07-21
              • 2013-10-25
              • 1970-01-01
              相关资源
              最近更新 更多