114 votes

Pourquoi les fonctions intégrées de PHP sont-elles nommées de manière aléatoire ?

Il semble qu'il n'y ait pas de véritable modèle dans la façon dont les fonctions sont nommées, str_replace, strrpos, strip_tags, stripslashes en sont quelques-uns.

Pourquoi en est-il ainsi ?

EDIT - ce n'était pas un message de type "troll" - juste quelque chose que je pense chaque fois que j'utilise cette langue !

83voto

ConroyP Points 24021

Le langage PHP s'est développé de manière organique, et le nom des fonctions est parfois aléatoire. La plupart des différents formats sont conservés pour des raisons de compatibilité ascendante.

Une légère digression, mais en plus des problèmes de dénomination des fonctions, un autre effet secondaire malheureux de la croissance organique du langage est une incohérence apparente dans l'ordre des arguments, par exemple, considérez les fonctions dans_réseau y strstr :

bool in_array (mixed $needle, array $haystack [, bool $strict])

string strstr (string $haystack, mixed $needle [, bool $before_needle=false])

Il est amusant de constater que PHP semble être cohérent en interne avec ces ordres, dans la mesure où toutes les fonctions de chaînes de caractères semblent utiliser la fonction $haystack, $needle alors que les fonctions de tableau sont inversées, mais cela peut prendre un peu de temps pour s'habituer à quelqu'un qui ne connaît pas PHP. Il existe une bonne post sur ExpressionEngine parler de cette bizarrerie en détail, ainsi qu'une discussion sur la liste des bogues de PHP .

Au fur et à mesure de la maturation du langage, diverses tentatives ont été faites pour mettre en œuvre une convention de dénomination plus rigide et plus cohérente - de l'initiative Documentation sur Zend Framework :

Les noms de fonction doivent toujours commencer par une lettre minuscule. Lorsqu'un nom de fonction est composé de plusieurs mots, la première lettre de chaque nouveau mot doit être en majuscule. C'est ce qu'on appelle communément le formatage "camelCase".

filterInput()

getElementById()

Pour un point de vue légèrement différent, de 20 raisons possibles pour lesquelles les noms et paramètres des fonctions PHP sont bizarres :

  • PHP colle les API et les humains ensemble, et parfois cela devient désordonné.

  • Les fonctions PHP ont été développées dans de nombreuses circonstances, parfois en état d'ébriété.

  • L'algorithme de dénomination des fonctions PHP reste un secret et ne peut être craqué.

  • PHP a choisi de donner aux gens quelque chose d'amusant pour se plaindre/bloguer/rire.

  • PHP a d'autres problèmes à résoudre

22voto

Marc Gear Points 2503

Historiquement, de nombreuses fonctions sont des cartes directes de leur C Une grande partie de la bizarrerie des noms et de l'ordre des arguments en PHP est due à cela.

Les contributeurs à PHP ont généralement contribué au langage pour répondre à leurs propres besoins, ainsi le langage s'est développé de manière organique et parfois indisciplinée. Sa popularité signifie également qu'il s'est efforcé de maintenir une compatibilité ascendante tout au long de son cycle de vie, ce qui signifie que les mauvaises décisions concernant le langage perdurent même après avoir été dépréciées.

8voto

hazzen Points 7315

La rétrocompatibilité et le manque d'espaces de noms, ainsi que le renouvellement des langues.

8voto

Craig Trader Points 8924

Parce que le langage a évolué au cours des 14 dernières années, passant de "Personal Home Page" à l'un des langages de mise en œuvre de sites web les plus populaires. Personne n'a prévu toutes ces fonctions ; elles ont été ajoutées une à une, selon les besoins.

5voto

lo_fye Points 4422

La réponse est soit l'évolution, soit une conception inintelligente. Je ne sais pas laquelle ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X