我正在尝试调试一个旧的php脚本( ),该脚本旨在通过命令行运行。该脚本旨在接受1个可选参数,后跟N个选项。它的编写是希望以下两种情况都可以正常工作。
情况1:带有选项的参数:
php script.php <argument> --option-a=tuesdays --option-b
情况2:没有带选项的参数:
php script.php --option-c
在脚本内部,使用以下方式获取参数和选项:
$argument = (strpos($argv[1], '-') === 0) ? '' : $argv[1];
$options = getopt('', [
'option-a:',
'option-b',
'option-c',
]);
案例2始终按预期工作。我收到了选项,但参数为空。
案例1不按预期工作。我收到了参数,但$options数组始终为空。
我看到建议反转选项和参数的建议,因此我将通过
php script --option-c <argument>
调用它。我不想改变它的调用方式,因为这是一个可以在任何地方使用的旧脚本。有没有办法使用
getopt()
获取选项以更正案例1?