$argc
传递给脚本的参数数目
说明
包含当运行于命令行下时传递给当前脚本的参数的数目。
Note:脚本的文件名总是作为参数传递给当前脚本,因此$argc的最小值为1。
Note:这个变量仅在register_argc_argv打开时可用。
范例
Example #1$argc范例
<?php var_dump($argc); ?>
当使用这个命令执行: php script.php arg1 arg2 arg3
以上例程的输出类似于:
int(4)
注释
Note:
也可以在$_SERVER['argc']中获取。
参见
getopt()
从命令行参数列表中获取选项- $argv
To find out are you in CLI or not, this is much better in my opinion: <?php if (PHP_SAPI != "cli") { exit; } ?>
You can use php_sapi_name() to check whether it is cli or not
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
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.
int main(int argc, char *argv[]) { fprintf(stdout,"argumen count : %d\n",argc); fprintf(stdout,"argumen vector : %s\n",argv); return 0; }