Как я сделал бы ИЛИ оператор со случаем Переключателя? (PHP)

Как был бы я идти о преобразовании этого если оператор:

for($i = 1; $i < $argc; $i++)
{
    ...
    if(in_array($argv[$i], array('-V', '--version')))
    {
        $displayVersion = TRUE;
    }
    ...
}

В случай переключателя, не будучи должен записать два оператора переключения?

5
задан Urda 1 February 2010 в 14:07
поделиться

4 ответа

switch($argv[$i])
{
    case '-V':
    case '--version':
        $displayVersion = true;
    break;
}
13
ответ дан 18 December 2019 в 06:50
поделиться

Прямой перевод будет следующим:

switch(in_array($argv[$i], array('-V', '--version'))){
    case true:
        $displayVersion = TRUE; break;
}

Однако вы также можете сделать что-то вроде этого, что яснее.

switch($argv[$i]){
    case '-V':
    case '--version':
        $displayVersion = TRUE; break;
}

В зависимости от того, что вы хотите сделать, один вкладыш может быть более понятным, хотя он отличается от вышеуказанного кода в том, что переменная будет установлена ​​на false, если in_array ($ argv [$ i], массив ( 'V ',' --version ')) неверно. Учитывая ваше имя переменной, я сомневаюсь, что это плохое.

$displayVersion = in_array($argv[$i], array('-V', '--version'));
5
ответ дан 18 December 2019 в 06:50
поделиться
switch ($argv[$i])
{
    case '-V':
    case '--version':
        $displayVersion = true;
        break;
    case 'other':
        // do other stuff
        break;
    default:
        // your "else" case would go here
        break:
}
3
ответ дан 18 December 2019 в 06:50
поделиться

В дополнение к исправлению этого вы можете посмотреть на PHP Команда GetOpt , которая является функцией для обработки аргументов командной строки как в коротких и длинных форматах.

Редактировать: На самом деле, вот код код

$options = getopt('V', array('version'));

if ($options['V'] || $options['version']) {
    $displayVersion = TRUE;
}

Обратите внимание, что вам нужен PHP 5.3 для этого для работы в Windows.

2
ответ дан 18 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: