Я не уверен, что идет не так, ни из официальной документации я могу получить большую помощь.
Но это то, что происходит.
У меня есть опция ‘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.
Действительно сбит с толку.
Спасибо за ваше время.
Спасибо @hchr
Ваше решение работает без проблем:
$op = getopt("ac:m:");
if (empty($op)) {
alertForInvalidArgument();
} else {
callProcessor($op);
}
function callProcessor($op)
{
if ($op["a"]) {
doAll();
} elseif ($op["c"]) {
doSome($op["c"]);
} else {
doOne($op["m"]);
}
}
Других решений пока нет …