【发布时间】:2014-10-01 11:10:10
【问题描述】:
我不确定出了什么问题,也不能从官方文档中获得太多帮助。
但这就是正在发生的事情。
我有选项 'a'、'c:' 和 'm:' 可以使用 getOpt() 从命令行读取
它们的布局如下:
if ($op = getopt("a")) {
doAll();
} elseif ($op = getopt("c:")) {
doSome($op["c"]);
} elseif ($op = getopt("m:")) {
doOne($op["m"]);
} else {
echo "INVALID ARGS"; exit;
}
选项“a”和“m”有效,但是当我使用选项“c”时:
php4 rebuild_mastertag.php -c 1234
它总是打印INVALID ARGS
如果我通过 1 或 12 或 12345678 让事情变得更神秘,它可以工作,但它不适用于 123、1234、12345、123456、1234567 之类的数字。
真的很困惑。
感谢您的宝贵时间。
【问题讨论】:
-
考虑使用 IDE,比如 Netbeans 或类似的东西。它们用于突出编码错误(或可能的错误),例如条件中的无意分配。
-
我很确定分配是有意的,他不想比较这些值。尽管如此,这不应该在 if 语句中完成是正确的,我建议只使用一个赋值,如
$op = getopt("ac:m:")或类似的。 -
是的,hchr,这个赋值是有意为速记的。
-
这是完整的代码吗?如果我自己尝试,c 部分会被执行(不管我通过 '-c 1234' 还是 '-c 1')。
-
到现在已经完成了,我正在尝试看看它是否调用了正确的例程。