Maison >développement back-end >tutoriel php >Le passage par référence est-il plus lent que le passage par valeur en PHP pour les fonctions qui ne modifient pas les paramètres ?

Le passage par référence est-il plus lent que le passage par valeur en PHP pour les fonctions qui ne modifient pas les paramètres ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-08 11:45:02602parcourir

Is Pass-by-Reference Slower Than Pass-by-Value in PHP for Functions That Don't Modify Parameters?

Le passage par référence est-il plus rapide en PHP (>= 5.0) ?

En PHP, les paramètres de fonction peuvent être transmis par référence , permettant aux fonctions de modifier des variables en dehors de leur portée. Bien que cela ne soit pas destiné à l'optimisation des performances, cela soulève la question de savoir si la logique Copy On Write utilisée en PHP affecte les performances des fonctions qui ne modifient pas leurs paramètres.

Tests de performances

Des tests impliquant 100 000 itérations d'un appel de fonction avec un paramètre de chaîne de 20 Ko ont révélé les résultats suivants :

Pour les fonctions qui lisent ou utilisent le paramètre :

  • Passez par valeur : 0,12065005 secondes
  • Passez par référence : 1,52171397 secondes

Pour les fonctions qui changent le paramètre :

  • Passer par valeur : 1,52223396 secondes
  • Passer par référence : 1,52388787 secondes

Conclusions

  1. La transmission des paramètres par valeur est systématiquement plus rapide dans les deux cas.
  2. Pour les fonctions qui modifient le paramètre, il n'y a pas de différence de performances significative entre passage par référence et passage par valeur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn