我有2个简单的PHP文件:
test.php的
<?php
$a=10;
require "use.php?c=$a";
?>
use.php:
<?php
$test=$_GET['c'];
echo $test;
?>
但它什么也没有回报。
有什么问题?
答案 0 :(得分:5)
这不是您想要使用require
的方式:您通常使用它来包含文件系统路径,该路径不适用于GET参数。 GET参数仅适用于HTTP URL。 (HTTP请求很慢,因此您几乎不希望通过URL包含某些内容。)
require
d代码被执行,好像它是当前脚本的一部分。
所以你可以这样做:
<?php
$a=10;
require "use.php";
?>
use.php
<?php
$test=$a;
echo $test;
?>
答案 1 :(得分:1)
include()
和require()
不会发出HTTP请求,它们可以在本地文件系统上运行。 $_GET
和朋友在填充时使用网址参数。您的代码不起作用,因为您正在尝试require()
名为use.php?c=$a
的文件,而不是名为use.php
的文件,将值$a
传递给参数c
,这就是你想要的。
这将有效:
<强> test.php的强>
<?php
$a=10;
require "use.php";
?>
<强> use.php 强>
<?php
echo $a;
?>
如果没有输出,则应启用错误报告:
error_reporting(-1);
ini_set('display_errors',1);
答案 2 :(得分:0)
需要?也许位置你在寻找:
$a=10;
header( "Location: use.php?c=$a" ) ;
答案 3 :(得分:-1)
您可以尝试以下代码:
$oldget = $_GET;
$_GET = array('c'=>'a');
require "use.php";
$_GET = $oldget;
但我认为,你应该改变你的架构