php$GLOBALS变量

php$GLOBALS变量,php,global-variables,Php,Global Variables,我正在编写一段代码,我有一个包含()和第二个脚本的父php脚本,下面是我的第二段代码的片段: echo($GLOBALS['key($_REQUEST')); 我正试图从父级获取一个密钥($\u请求)并在子级中使用它,但这不起作用 这是我使用命令行运行脚本的时候: mbp:digaweb alexus$ php findItemsByKeywords.php test PHP Notice: Undefined index: key($_REQUEST) in /Users/alexus/

我正在编写一段代码,我有一个包含()和第二个脚本的父php脚本,下面是我的第二段代码的片段:


echo($GLOBALS['key($_REQUEST'));

我正试图从父级获取一个密钥($\u请求)并在子级中使用它,但这不起作用

这是我使用命令行运行脚本的时候:

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$ mbp:digawebalexus$php findItemsByKeywords.php测试 PHP注意:第3行的/Users/alexus/workspace/digaweb/findItemsByKeywords.PHP中未定义的索引:key($\u请求) PHP堆栈跟踪: PHP1。{main}()/Users/alexus/workspace/digaweb/findItemsByKeywords.php:0 mbp:digaweb alexus美元 我听说globals也不被推荐,但我不知道它是否合适

echo $_GLOBALS[key($_REQUEST)];
您只需要删除单引号。它正在寻找文本“key($\u REQUEST)”键,显然它不存在


这完全取决于你想做什么。。。你想做什么?

根据你对我另一个答案的评论,我想我理解你想做什么。您只是试图将一个变量从一个脚本传递到包含的另一个脚本中

只要在包含脚本之前定义变量,就可以在包含的脚本中使用它。例如:

// script1.php
$foo = 'bar';
include_once('script2.php');

// script2.php
echo $foo; // prints "bar"

$\u请求是一个超全局请求,可以直接在任何函数或脚本中使用,因此您无需担心将其传递给子脚本。但是,当从命令行使用时,PHP不会填充$\u请求,除非您使用的是我不熟悉的配置选项。您需要使用$\u服务器['argv']数组

事实上,不建议使用全局。如果你按照建议去做,你会有一个更轻松的长期计划。下面是一个例子:

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;
}
?>
script1.php:

另一种方法可能是在包含的脚本中定义一个函数/类,并在包含的脚本中调用它/创建一个实例。您是否可以用一些示例回答这个问题,我并没有真正理解您的意思..当我尝试您的示例时,我得到:PHP注意:未定义的变量:_GLOBALS,我要做的是将该键($\u请求)传递给我通过include()调用的子脚本,我需要从父脚本向该脚本传递一些内容,我会尝试一下,但现在我不知道这是否是最佳实践,我是通过将script2作为函数来实现的。