php getopt返回空数组

时间:2017-03-26 16:15:23

标签: php

我正在尝试使用getopt()从PHP7 cli获取选项,但在调用php myprocess.php task -d -o时我得到一个空数组。不知道我错过了什么,希望你能帮助我。

这就是我阅读选项的方式:

$options = getopt("d::o::");

由于

1 个答案:

答案 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
)