我正在编写一些代码,我的父php脚本包含()并包含第二个脚本,这是我第二个代码的片段:
echo ($GLOBALS['key($_REQUEST)']);
我尝试从父级获取密钥($ _ REQUEST)并在子级中使用它,但这不起作用..
这是我使用命令行运行脚本的时候:
mbp:digaweb alexus$ php findItemsByKeywords.php test PHP Notice: Undefined index: key($_REQUEST) in /Users/alexus/workspace/digaweb/findItemsByKeywords.php on line 3 PHP Stack trace: PHP 1. {main}() /Users/alexus/workspace/digaweb/findItemsByKeywords.php:0 mbp:digaweb alexus$
我听说不推荐使用全局变量,但我不知道也许没关系......
答案 0 :(得分:3)
$ _ REQUEST是一个超全局,可直接在任何函数或脚本中使用,因此您无需担心将其传递给子脚本。但是,从命令行使用PHP时不会填充$ _REQUEST,除非您使用的是我不熟悉的配置选项。您需要使用$ _SERVER ['argv']数组。
确实不推荐全球。如果你选择outis建议的话,你会有更长的时间长期。这是一个例子:
script1.php:
<?php
$file = $_SERVER['argv'][1]; // 0 is the script's name
require_once ('script2.php');
$result = doSomething ($file);
echo $result;
?>
script2.php:
<?php
function doSomething ($inputfile)
{
$buf = file_get_contents($inputfile);
$buf = strtolower($buf); // counts as something!
return $buf;
}
?>
这个例子没有使用密钥($ _ REQUEST),但是我不确定它的用途是什么,所以我只使用了$ _SERVER ['argv']。
答案 1 :(得分:0)
根据您对我的其他答案的评论,我想我明白您正在尝试做什么。您只是尝试将一个变量从一个脚本传递到另一个包含的脚本中。
只要在包含脚本之前定义变量,就可以在包含的脚本中使用它。例如:
// script1.php
$foo = 'bar';
include_once('script2.php');
// script2.php
echo $foo; // prints "bar"
答案 2 :(得分:-1)
echo $_GLOBALS[key($_REQUEST)];
您只需删除单引号即可。它正在寻找文字'key($ _ REQUEST)'键,显然不存在。
这完全取决于你想要做什么......你想做什么?