SunshinePHP 2016


(PHP 4, PHP 5)

$argcLe nombre d'arguments passés au script


Contient le nombre d'arguments passés au script courant lorsqu'il est exécuté depuis la ligne de commande.

Note: Le nom du fichier contenant le script est toujours passé en tant qu'argument au script, ainsi la valeur minimale de $argc est 1.

Note: Cette variable n'est pas disponible lorsque register_argc_argv est désactivé.


Exemple #1 Exemple avec $argc


Lorsque l'on exécute l'exemple avec la commande : php script.php arg1 arg2 arg3

L'exemple ci-dessus va afficher quelque chose de similaire à :


add a note add a note

User Contributed Notes 5 notes

4 years ago
To find out are you in CLI or not, this is much better in my opinion:
if (PHP_SAPI != "cli") {
hvuaka at gmail dot com
1 year ago
You can use php_sapi_name() to check whether it is cli or not
4 years ago
I use the following lines to check if i'm using CLI mode or not :

= false;
if ( isset(
$_SERVER['argc']) && $_SERVER['argc']>=1 ) {
$cli_mode = true;
elm at r3m0ve dot gmx dot ch
1 year ago
To decide whether my script is run from CLI I simply create a PHP script that handles only CLI invocations.

File cron.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.
karsten at typo3 dot org
6 years ago
Note: when using CLI $argc (as well as $argv) are always available, regardless of register_argc_argv, as explained at
To Top