简单的说:
<? include("open.php"); ?>
VS
<? include("open.php?page=about"); ?>
VS
<? $x="varToPass"; include("open.php"); ?>
为什么不能这样做,这肯定应该被编程进去。如果不能,我可以编辑原始/核心 PHP C 文件来实现这一点。
简单的说:
<? include("open.php"); ?>
VS
<? include("open.php?page=about"); ?>
VS
<? $x="varToPass"; include("open.php"); ?>
为什么不能这样做,这肯定应该被编程进去。如果不能,我可以编辑原始/核心 PHP C 文件来实现这一点。
简单的答案。不需要像这样传递参数。
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
。但我建议你不要。
当您包含文件时,它们将位于同一范围内,因此您可以重用变量或检索参数:
<?php
// index file
$x = $_GET["x"];
include 'file.php';
在file.php中,您可以执行以下操作:
<?php
//include file
if ($x != '')
或者:
<?php
//include file
$x = $_GET["x"];
所以没有必要传递东西-
包括/要求是针对物理文件,而不是基于传入参数的文件的动态表示。
对于后者,您需要查看cURL。