web-dev-qa-db-fra.com

Sont "elseif" et "else si" complètement?

Sont elseif et else if complètement, ou y a-t-il une différence?

Zend a-t-il un "standard" accepté sur lequel utiliser?

Bien que je n'aime pas personnellement voir elseif dans le code, j'ai juste besoin de savoir si c'est également le cas et le manuel PHP n'est pas le plus facile à rechercher.

152
Theodore R. Smith

Depuis le manuel PHP :

En PHP, vous pouvez également écrire 'else if' (en deux mots) et le comportement serait identique à celui de 'elseif' (dans un seul mot). La signification syntaxique est légèrement différente (si vous connaissez C, c'est le même comportement), mais le résultat est que les deux entraîneraient exactement le même comportement.

Ils se comporteront essentiellement de la même manière, mais else if est techniquement équivalent à une structure imbriquée comme ceci:

if (first_condition)
{

}
else
{
  if (second_condition)
  {

  }
}

Le manuel note également:

Notez que elseif et else if ne seront considérés exactement comme si vous utilisiez des accolades comme dans l'exemple ci-dessus. Lorsque vous utilisez deux points pour définir vos conditions if/elseif, vous ne devez pas séparer les autres éléments if si deux mots, ou PHP échouera avec une erreur d'analyse.

Ce qui signifie que sous la forme de structure de contrôle normale (c'est-à-dire en utilisant des accolades):

if (first_condition)
{

}
elseif (second_condition)
{

}

soit elseif ou else if peut être utilisé. Cependant, si vous utilisez le syntaxe alternative , vous devez utiliser elseif:

if (first_condition):
  // ...
elseif (second_condition):
  // ...
endif;
198
Daniel Vandersluis

Le groupe d'interopérabilité du cadre (FIG), composé de membres comprenant les développeurs de Zend ( https://github.com/php-fig/fig-standards#voting-members ), mis en place une série de recommandations standard (PSR- #).

Zend2 et Symfony2 suivent déjà PSR-0.

Il n'y a pas de règles strictes pour les styles, mais vous pouvez essayer de suivre le plus possible le PSR-2.

Il y a un commentaire sur else if vs elseif dans PSR-2:

Le mot-clé elseif DEVRAIT être utilisé à la place de else si tous les mots-clés de contrôle ressemblent à des mots simples.

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#51-if-elseif-else

Certaines des recommandations ne sont que des recommandations. C’est à vous de choisir d’utiliser if ou elseif

42
James Cowhen