PHPKonf Istanbul PHP Conference 2019 - Call for Papers

$argc

(PHP 4, PHP 5, PHP 7)

$argcКоличество аргументов, переданных скрипту

Описание

Содержит количество аргументов, переданных текущему скрипту при запуске из командной строки.

Замечание: Имя файла скрипта всегда передаётся в качестве первого аргумента, таким образом минимальное значение $argc равно 1.

Замечание: Эта переменная недоступна, если register_argc_argv отключен.

Примеры

Пример #1 Пример использования $argc

<?php
var_dump
($argc);
?>

Запустим пример в командной строке: php script.php arg1 arg2 arg3

Результатом выполнения данного примера будет что-то подобное:

int(4)

Примечания

Замечание:

Также доступно как $_SERVER['argc'].

Смотрите также

  • getopt() - Получает параметры из списка аргументов командной строки
  • $argv

add a note add a note

User Contributed Notes 5 notes

up
29
Tejesember
7 years ago
To find out are you in CLI or not, this is much better in my opinion:
<?php
if (PHP_SAPI != "cli") {
    exit;
}
?>
up
0
anonymous
2 months ago
int main(int argc, char *argv[])
{
  fprintf(stdout,"argumen count : %d\n",argc);
  fprintf(stdout,"argumen vector : %s\n",argv);
  return 0;
}
up
-9
hvuaka at gmail dot com
4 years ago
You can use php_sapi_name() to check whether it is cli or not
up
-11
karsten at typo3 dot org
9 years ago
Note: when using CLI $argc (as well as $argv) are always available, regardless of register_argc_argv, as explained at http://docs.php.net/manual/en/features.commandline.php
up
-12
elm at r3m0ve dot gmx dot ch
4 years ago
To decide whether my script is run from CLI I simply create a PHP script that handles only CLI invocations.

File cron.php:
<?php

// Set environment variables your application depends on
$_SERVER[ 'HTTP_HOST' ] = 'domain.tld';
// $_SERVER[ 'REQUEST_URI' ] = '/some/URI/if/needed';

// Use the environment to read out required values
$task = $_SERVER[ 'argv' ][ 1 ];

// Instanciate the dispatcher or whatever you use
$dispatcher = new Dispatcher();
$dispatcher->handle( $task );

?>

This way my application doesn't have to know about CLI at all.
To Top