-1

简单的说:

<? include("open.php"); ?>

VS

<? include("open.php?page=about"); ?>

VS

<? $x="varToPass"; include("open.php"); ?>

为什么不能这样做,这肯定应该被编程进去。如果不能,我可以编辑原始/核心 PHP C 文件来实现这一点。

4

3 回答 3

2

简单的答案。不需要像这样传递参数。

include 'open.php?page=about&something=true&more=rubbish';

相对

$page = 'about';
$something = true;
$more = 'rubbish';

include 'open.php';

我认为很容易看出哪个更具可读性,并且它们都完全实现了您想要做的事情。

事实是,该include语句在您引用它时从字面上包含了指定文件中的代码。

您可以将执行包含的文件视为open.php在您编写包含语句的确切位置具有源。

编辑:

回答你问题的第二部分。是的,您可以修改源代码并实现这一点,但这将是一个毫无意义的练习。

编辑2:

我还想到,也许您认为您想通过 URL 包含文件。

例如include 'http://127.0.0.1/open.php?page=about'

在这种情况下,这是完全可能的,因为http将调用流包装器,并将变量传递给您请求的文件。

默认情况下禁用此行为,因为它会带来巨大的安全风险。

allow_url_include您可以通过编辑 中的值来打开它php.ini。但我建议你不要。

于 2012-08-01T11:27:47.327 回答
1

当您包含文件时,它们将位于同一范围内,因此您可以重用变量检索参数

<?php
    // index file
    $x = $_GET["x"];
    include 'file.php';

file.php中,您可以执行以下操作:

<?php
    //include file
    if ($x != '')

或者:

<?php
    //include file
    $x = $_GET["x"];

所以没有必要传递东西-

于 2012-08-01T11:23:06.273 回答
-1

包括/要求是针对物理文件,而不是基于传入参数的文件的动态表示。

对于后者,您需要查看cURL

于 2012-08-01T11:22:56.323 回答