php $ GLOBALS变量

时间:2009-09-30 04:59:41

标签: php global-variables

我正在编写一些代码,我的父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$ 

我听说不推荐使用全局变量,但我不知道也许没关系......

3 个答案:

答案 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)'键,显然不存在。

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