略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: $argv

2024-12-30

$argv

$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'] 中获取。

参见

add a noteadd a note

User Contributed Notes 5 notes

up
86
tufan dot oezduman at googlemail dot com
10 years ago
Please note that, $argv and $argc need to be declared global, while trying to access within a class method.

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

A::b();
?>

will output NULL bool(false)  with a notice of "Undefined variable ..."

whereas global $argv fixes that.
up
2
Radon8472
6 months ago
I discovered that `register_argc_argv` is alway OFF if you use php internal webserver, even if it is set to `On` in the php.ini.

What means there seems to be no way to access argv / argc in php internal commandline server.
up
31
hamboy75 at example dot com
8 years ago
To use $_GET so you dont need to support both if it could be used from command line and from web browser.

foreach ($argv as $arg) {
    $e=explode("=",$arg);
    if(count($e)==2)
        $_GET[$e[0]]=$e[1];
    else   
        $_GET[$e[0]]=0;
}
up
4
php at simoneast dot net
6 years ago
Sometimes $argv can be null, such as when "register-argc-argv" is set to false.  In some cases I've found the variable is populated correctly when running "php-cli" instead of just "php" from the command line (or cron).
up
7
Steve Schmitt
12 years ago
If you come from a shell scripting background, you might expect to find this topic under the heading "positional parameters".

官方地址:https://www.php.net/manual/en/reserved.variables.argv.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3