PHP Cas de bord de getopt ()


Exemple

Cet exemple montre le comportement de getopt lorsque l'entrée utilisateur est rare:

getopt.php
var_dump(
    getopt("ab:c::", ["delta", "epsilon:", "zeta::"])
);
Ligne de commande shell
$ php getopt.php -a -a -bbeta -b beta -cgamma --delta --epsilon --zeta --zeta=f  -c gamma
array(6) {
  ["a"]=>
  array(2) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
  }
  ["b"]=>
  array(2) {
    [0]=>
    string(4) "beta"
    [1]=>
    string(4) "beta"
  }
  ["c"]=>
  array(2) {
    [0]=>
    string(5) "gamma"
    [1]=>
    bool(false)
  }
  ["delta"]=>
  bool(false)
  ["epsilon"]=>
  string(6) "--zeta"
  ["zeta"]=>
  string(1) "f"
}

De cet exemple, on peut voir que:

  • Les options individuelles (pas de deux points) portent toujours une valeur booléenne false si cette option est activée.
  • Si une option est répétée, la valeur respective dans la sortie de getopt deviendra un tableau.
  • Les options d'argument requises (un deux-points) acceptent un espace ou aucun espace (comme les options d'argument optionnelles) comme séparateur
  • Après un argument qui ne peut être associé à aucune option, les options ne seront pas mappées non plus.