$argv

$argvBetiğe geçirilen ifade dizisi

Açıklama

komut satırından çalıştığında betiğe aktarılan ifade dizi'sini içerir.

Bilginize: İlk ifade her zaman geçerli betiğin adıdır, bu nedenle $argv[0] betiğin adıdır.

Bilginize: Bu değişken sadece register_argc_argv etkin olduğunda kullanılabilir.

Örnekler

Örnek 1 - $argv örneği

<?php
var_dump
($argv);
?>

Örneği şu şekilde çalıştırınca: php betik.php arg1 arg2 arg3

Yukarıdaki örnek şuna benzer bir çıktı üretir:

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

add a note add a note

User Contributed Notes 5 notes

up
35
tufan dot oezduman at googlemail dot com
3 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
16
hamboy75 at example dot com
1 year 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
0
KRowe
10 days ago
Improves on hamboy75's note by providing better support for positional arguments:

    foreach ($argv as $arg) {
         $e=explode("=",$arg);
        if(count($e)==2)
            $_GET[$e[0]]=$e[1];
        else   
            $_GET[]=$e[0];
    }

    var_dump($_GET);

Using this modification, arguments without an = are treated as positional (this is not web standard but generally works).
up
1
Steve Schmitt
5 years ago
If you come from a shell scripting background, you might expect to find this topic under the heading "positional parameters".
up
-35
Jesse
2 years ago
If your script is read from standard input or with the -r option, $argv[0] will be "-".

If you use the "--" option to separate PHP's arguments from your script's arguments, $argv[1] will be "--" if your script is read from a file. But if your script is read from standard input or with the -r option, the "--" will be removed.
To Top