Dutch PHP Conference 2025 - Call For Papers

$argv

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

$argvМасив аргументів, переданих до скрипта

Опис

Містить масив (array), що містить всі аргументи, передані до скрипта при запуску з командного рядка.

Зауваження: Першим аргументом $argv[0] є завжди назва, що використовується для запуску скрипта (частіше за все - це назва файла скрипта).

Зауваження: Ця змінна недоступна, якщо директива register_argc_argv має значення, що прирівнюється до FALSE.

Приклади

Приклад #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() - Gets options from the command line argument list

add a note

User Contributed Notes 6 notes

up
89
tufan dot oezduman at googlemail dot com
13 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
31
hamboy75 at example dot com
10 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
2
Steve Schmitt
15 years ago
If you come from a shell scripting background, you might expect to find this topic under the heading "positional parameters".
up
0
php at simoneast dot net
8 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
-2
Radon8472
2 years 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
-1
vatruski at t dot me
1 year ago
You can reinitialize the argument variables for web applications.
So if you created a command line, with some additional tweaks you can make it work on the web.
To Top