第一种:使用 $argv
print_r($argv);
?>
效果:
[root@mingming-dev cmdphp]# php index.php -a hello -b lazy
Array
(
[0] => index.php
[1] => -a
[2] => hello
[3] => -b
[4] => lazy
)
但是这种做法对于简单的是可以进行参数的传递,但是很容易出现问题,这就好像只是指明了value,但是确没有指明对于的key,时间一长就很难记得到底应该如何调用了,所有只有在需求简单的环境下才推荐使用这种用法。
第二种:使用STDOUT 和STDIN
这种做法很类似在C++语言中首先声明了输入输出流~好比cout和cin,这种场景比较适合于有交互性细节的操作:
fwrite(STDOUT, "Enter your name: ");
$name = trim(fgets(STDIN));
fwrite(STDOUT, "Hello, $name!");
?>
效果:
[root@mingming-dev cmdphp]# php index.php
Enter your name: lazypeople
Hello, lazypeople!
第三种:使用get_opt()
这个也是最牛逼的做法了,因为可以指定key和value。]
代码:
$shortopts = "";
$shortopts .= "f:"; // Required value
$shortopts .= "v::"; // Optional value
$shortopts .= "abc"; // These options do not accept values
$longopts = array(
"required:", // Required value
"optional::", // Optional value
"option", // No value
"opt", // No value
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
效果:
[root@mingming-dev cmdphp]# php index2.php -f "value for f" -v -a --required value --optional="optional value" --option will
array(6) {
["f"]=>
string(11) "value for f"
["v"]=>
bool(false)
["a"]=>
bool(false)
["required"]=>
string(5) "value"
["optional"]=>
string(14) "optional value"
["option"]=>
bool(false)
}