2016-01-08 103 views
1

我想在命令行上将一些参数传递给一个简单的PHP脚本。该脚本使用getopt来读取参数。但是,无论我指定什么参数,该方法总是返回false。根据文档,这表明一个错误。但是,我怎么知道问题是什么?PHP命令行:getopt总是返回false

<?php 
$options = getopt("x"); 

if ($options === false) 
    echo "No result"; 
else 
    var_dump($options); 
?> 

// Commandline 
$ php myscript.php -x 
$ No result 

我在做什么错?我在getopt(...)中尝试了各种其他参数规范,但结果总是相同的:只返回false

有什么想法?

+0

当我运行脚本正是因为你拥有了它,我得到' array(1){'x'=> bool(false)}',所以'-x'选项被解析。这是你真正的代码吗? –

+0

是的,这是真实的代码。 –

+0

顺便说一句:我使用PHP 5.5.14,如果这有什么区别 –

回答

1

您必须指定选项名称,如果需要与否(使用:所需和::一个可选参数。

<?php 
$options = getopt("x:"); 

if ($options == false) 
    echo "No result"; 
else 
    var_dump($options); 
+0

省略':'或'::'会创建一个不带值的可选布尔值。 –

+0

@MichaelBerkowski你对这个问题是正确的,他的代码无法按预期工作很奇怪 – Patryk