Как был бы я идти о преобразовании этого если оператор:
for($i = 1; $i < $argc; $i++)
{
...
if(in_array($argv[$i], array('-V', '--version')))
{
$displayVersion = TRUE;
}
...
}
В случай переключателя, не будучи должен записать два оператора переключения?
switch($argv[$i])
{
case '-V':
case '--version':
$displayVersion = true;
break;
}
Прямой перевод будет следующим:
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'));
switch ($argv[$i])
{
case '-V':
case '--version':
$displayVersion = true;
break;
case 'other':
// do other stuff
break;
default:
// your "else" case would go here
break:
}
В дополнение к исправлению этого вы можете посмотреть на PHP Команда GetOpt , которая является функцией для обработки аргументов командной строки как в коротких и длинных форматах.
Редактировать: На самом деле, вот код код
$options = getopt('V', array('version'));
if ($options['V'] || $options['version']) {
$displayVersion = TRUE;
}
Обратите внимание, что вам нужен PHP 5.3 для этого для работы в Windows.