2010-02-01 9 views

Respuesta

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

¡Ni siquiera pensé en hacer esto! Muchas gracias! – Urda

3
switch ($argv[$i]) 
{ 
    case '-V': 
    case '--version': 
     $displayVersion = true; 
     break; 
    case 'other': 
     // do other stuff 
     break; 
    default: 
     // your "else" case would go here 
     break: 
} 
5

una traducción directa sería la siguiente:

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

Sin embargo, también podría hacer algo como esto, que es más clara.

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

Dependiendo de lo que quiere hacer, un chiste puede ser más clara, aunque se diferencia del código anterior en que se establece la variable a falso si in_array($argv[$i], array('-V', '--version')) es falso. Dado su nombre de variable, dudo que esto sea algo malo.

$displayVersion = in_array($argv[$i], array('-V', '--version')); 
2

Además de solucionar esto, es posible que desee ver en el comando PHP getopt, que es una función para procesar argumentos de línea de comandos en ambos formatos cortos y largos.

Editar: En realidad, aquí hay un bloque de código

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

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

en cuenta que necesita PHP 5.3 para que esto funcione en Windows.

Cuestiones relacionadas