命令行向Php传递参数的两种方式

第一种:getopt()

php中的getopt是用来接收参数时用的,用法举例:paramtest.php

<?php

$options = getopt('a:b:c:');

var_dump($options)

命令行测试:

bash-3.2# php paramtest.php -a 1 -b 2 -c 3
array(3) {
  'a' =>
  string(1) "1"
  'b' =>
  string(1) "2"
  'c' =>
  string(1) "3"
}
bash-3.2# php paramtest.php -a 1 -b 2 -c 3 -d 4
array(3) {
  'a' =>
  string(1) "1"
  'b' =>
  string(1) "2"
  'c' =>
  string(1) "3"
}

当在getopt中注册的参数不存在时,php程序是不会接收的。

第二种: argvor argc参数接收

argv, argc是接收的参数的个数,举例:

bash-3.2# php paramtest.php -a 1 -b 2 -c 3 -d 4
参数的个数:9
Array
(
    [0] => paramtest.php
    [1] => -a
    [2] => 1
    [3] => -b
    [4] => 2
    [5] => -c
    [6] => 3
    [7] => -d
    [8] => 4
)

注:

  • php执行的文件会默认成为argv的第一个参数
  • 俩变量仅在 register_argc_argv 打开时可用

第三种:提示用户输入

程序如下:

<?php fwrite(STDOUT, '请输入信息:'); echo '您输入的信息是:'.fgets(STDIN);

测试:

bash-3.2# php paramtest.php 
请输入信息:hello world 
您输入的信息是:hello world 
bash-3.2# 


你可能感兴趣的:(命令行向Php传递参数的两种方式)