Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用GET-in-require_Php - Fatal编程技术网

Php 使用GET-in-require

Php 使用GET-in-require,php,Php,我有两个简单的PHP文件: test.php <?php $a=10; require "use.php?c=$a"; ?> use.php: <?php $test=$_GET['c']; echo $test; ?> 但它什么也不返回 怎么了?这不是您想要使用的require:您通常使用它来包含文件系统路径,该路径不适用于GET参数。GET参数仅在HTTP URL中工作。(HTTP请求很慢,因此您几乎不希望通过URL包含某些内容。) 执行required的

我有两个简单的PHP文件:

test.php

<?php
$a=10;
require "use.php?c=$a";
?>

use.php:

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

但它什么也不返回


怎么了?

这不是您想要使用的
require
:您通常使用它来包含文件系统路径,该路径不适用于GET参数。GET参数仅在HTTP URL中工作。(HTTP请求很慢,因此您几乎不希望通过URL包含某些内容。)

执行
require
d的代码,就好像它是当前脚本的一部分一样

所以你可以做:

<?php
$a=10;
require "use.php";
?>

use.php

<?php
$test=$a;
echo $test;
?>

这不是您想要使用的
require
:您通常使用它来包含文件系统路径,该路径不适用于GET参数。GET参数仅在HTTP URL中工作。(HTTP请求很慢,因此您几乎不希望通过URL包含某些内容。)

执行
require
d的代码,就好像它是当前脚本的一部分一样

所以你可以做:

<?php
$a=10;
require "use.php";
?>

use.php

<?php
$test=$a;
echo $test;
?>

include()
require()
不要发出HTTP请求,除非您提供完整的URL,否则它们在本地文件系统上工作
$\u GET
和朋友在填充URL参数时使用URL参数。代码不应该工作,因为您试图
require()
一个名为
use.php?c=$a
的文件,而不是名为
use.php
的文件,将值
$a
传递给参数
c
,这正是您想要的

这将有助于:

test.php

<?php
$a=10;
require "use.php";
?>
<?php
echo $a;
?>
include()
require()
不要发出HTTP请求,除非您提供完整的URL,否则它们在本地文件系统上工作
$\u GET
和朋友在填充URL参数时使用URL参数。代码不应该工作,因为您试图
require()
一个名为
use.php?c=$a
的文件,而不是名为
use.php
的文件,将值
$a
传递给参数
c
,这正是您想要的

这将有助于:

test.php

<?php
$a=10;
require "use.php";
?>
<?php
echo $a;
?>

需要什么?可能是您正在寻找的位置:

$a=10;
header( "Location: use.php?c=$a" ) ;

需要什么?可能是您正在寻找的位置:

$a=10;
header( "Location: use.php?c=$a" ) ;

您可以尝试以下代码:

$oldget = $_GET;
$_GET = array('c'=>'a');
require "use.php";
$_GET = $oldget;

但我认为,您应该更改您的体系结构

您可以尝试以下代码:

$oldget = $_GET;
$_GET = array('c'=>'a');
require "use.php";
$_GET = $oldget;

但我认为,你应该改变你的架构。但是我必须在文件之间保留变量名。有没有一种方法不需要变量名相同?@David您首先想做什么?如果你详细说明,也许有人能提出一个好的建议。但是我必须在文件之间保留变量名。有没有一种方法不需要变量名相同?@David您首先想做什么?如果你详细说明,也许有人能提出一个好的建议