2009-10-15 9 views
0

lors de l'utilisation de tableaux comme paramètres dans les fonctions, devrais-je les transmettre par référence ou par valeur? Ou il n'y a pas beaucoup de signification?passer tableau par référence

Répondre

6

Normalement, vous devriez passer en valeur.

Vous ne devriez passer en référence que si vous avez besoin de modifier le tableau en place, plutôt que d'en retourner un nouveau.

Il n'y a aucun avantage de performance à passer par référence lors de la lecture d'un tableau parce que PHP utilise copy-on-write,

+0

En effet, passer en valeur lorsque vous n'en avez pas besoin peut provoquer des changements inattendus au tableau d'origine si vous le tripotez dans la fonction. – seanmonstar

+0

Je pense qu'il veut dire passer par référence quand vous n'en avez pas besoin. –

0

Si vous êtes intéressé à maximiser la performance, faire un test de vitesse. En raison des optimisations PHP, le passage par référence est généralement plus rapide que le passage en valeur uniquement si vous modifiez le tableau (cependant, notez que le comportement est également différent!). Le passage à la valeur permet de réduire les effets secondaires d'une fonction (les effets secondaires sont une source courante de complexité de code et de bogues) et pour cela et d'autres, c'est un «meilleur style».

Donc, passez par référence seulement s'il y a une bonne raison de le faire.

Questions connexes