• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • $argv

    传递给脚本的参数数组

    说明

    包含当运行于命令行下时传递给当前脚本的参数的数组。

    Note:第一个参数总是当前脚本的文件名,因此$argv[0]就是脚本文件名。

    Note:这个变量仅在register_argc_argv打开时可用。

    范例

    Example #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"
    }
    

    参见

    • getopt()从命令行参数列表中获取选项
    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.
    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;
    }
    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).
    If you come from a shell scripting background, you might expect to find this topic under the heading "positional parameters".

    上篇:$argc