我正在尝试使用getopt()
从PHP7 cli获取选项,但在调用php myprocess.php task -d -o
时我得到一个空数组。不知道我错过了什么,希望你能帮助我。
这就是我阅读选项的方式:
$options = getopt("d::o::");
由于
答案 0 :(得分:0)
正如手册所说
选项的解析将在找到的第一个非选项中结束,后面的任何内容都将被丢弃。
所以,t
在"任务"是"首先发现非选项"这就是为什么随后的任何内容(包括-d
和-o
)都会被丢弃。
所以,你要么task
移动到shell调用结束:
> php myprocess.php -d -o task
或者也可以将任务设置为选项:
$options = getopt("d::o::t::"); // added `t` option
echo'<pre>',print_r($options),'</pre>';
> php myprocess.php -d -o -ttask
输出:
Array
(
[d] =>
[o] =>
[t] => task
)