$argv

(PHP 4, PHP 5, PHP 7, PHP 8)

$argv传递给脚本的参数数组

说明

包含一个 数组,其中包含从 命令行 运行脚本时传递的所有参数。

注意: 第一个参数 $argv[0] 始终是用于运行脚本的名称。

注意: register_argc_argv 被禁用时,此变量不可用。

示例

示例 #1 $argv 示例

<?php
var_dump
($argv);
?>

使用以下命令执行示例:php script.php arg1 arg2 arg3

上面的示例将输出类似以下内容

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

备注

注意:

它也可以作为 $_SERVER['argv'] 使用。

参见

添加注释

用户贡献注释 6 个注释

89
tufan dot oezduman at googlemail dot com
12 年前
请注意,在尝试访问类方法时,需要声明 $argv 和 $argc 为全局变量。

<?php
class A
{
public static function
b()
{
var_dump($argv);
var_dump(isset($argv));
}
}

A::b();
?>

将输出 NULL bool(false) 以及 “未定义变量...” 的通知。

而 global $argv 则可以解决这个问题。
31
hamboy75 at example dot com
10 年前
要使用 $_GET,这样就不需要同时支持命令行和 Web 浏览器。

foreach ($argv as $arg) {
$e=explode("=",$arg);
if(count($e)==2)
$_GET[$e[0]]=$e[1];
else
$_GET[$e[0]]=0;
}
2
Steve Schmitt
14 年前
如果您来自 shell 脚本背景,您可能会期望在标题 “位置参数” 下找到此主题。
0
php at simoneast dot net
8 年前
有时 $argv 可能为空,例如当 “register-argc-argv” 设置为 false 时。在某些情况下,我发现当从命令行(或 cron)运行 “php-cli” 而不是只运行 “php” 时,变量被正确填充。
-2
Radon8472
2 年前
我发现,如果您使用 php 内部 Web 服务器,即使在 php.ini 中将 `register_argc_argv` 设置为 `On`,它也始终为 `OFF`。

这意味着似乎在 php 内部命令行服务器中无法访问 argv / argc。
-1
vatruski at t dot me
1 年前
您可以为 Web 应用程序重新初始化参数变量。
因此,如果您创建了一个命令行,通过一些额外的调整,您就可以让它在 Web 上运行。
To Top