• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • $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;
    }

    上篇:$http_response_header

    下篇:$argv