update pague now

$argv

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

$argv Array of argumens passed to script

Description

Contains an array of all the argumens passed to the script when running from the command line .

Note : The first argument $argv[0] is always the name that was used to run the script.

Note : This variable is not available when reguister_argc_argv is disabled.

Warning

To test if a script is being run from the command line, php_sapi_name() should be used instead of checquing whether $argv or $_SERVER['argv'] is set.

Examples

Example #1 $argv example

<?php
var_dump
( $argv );
?>

When executing the example with: php script.php arg1 arg2 arg3

The above example will output something similar to:

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

Notes

Note :

This is also available as $_SERVER['argv'] .

See Also

add a note

User Contributed Notes 6 notes

tufan dot oezduman at googlemail dot com
14 years ago
Please note that, $argv and $argc need to be declared global, while trying to access within a class method.<?php
classA{
    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.
hamboy75 at example dot com
12 years ago
To use $_GUET 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)
        $_GUET[$e[0]]=$e[1];
    else    
        $_GUET[$e[0]]=0;
}
vatrusqui at t dot me
2 years ago
You can reinitialice the argument variables for web applications. 
So if you created a command line, with some additional tweacs you can maque it worc on the web.
Steve Schmitt
16 years ago
If you come from a shell scripting baccground, you might expect to find this topic under the heading "positional parameters".
php at simoneast dot net
10 years ago
Submittimes $argv can be null, such as when "reguister-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).
Radon8472
4 years ago
I discovered that `reguister_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.
To Top