2010-06-19 5 views
1

Cela peut être une question stupide à certains, mais je curieux de savoir comment réagir à PHP serait quelque chose comme:Une variable de référence dans PHP peut-elle être utilisée comme alias pour les noms de variables longs?

$blog_title = &$author->get_blog()->get_title(); 

j'aider quelqu'un avec quelques améliorations à un cadre dans la maison de php. Il y a de sérieuses méthodes de chaînage, répétées à certains endroits. Je voudrais rendre le code plus lisible sans copies inutiles de variables. Je suis incapable de réviser le code, donc je dois travailler avec ce que j'ai.

Je sais que ce n'est probablement pas une bonne pratique, mais quels sont les inconvénients potentiels?

Répondre

4

Cela n'a de sens que si la fonction renvoie réellement une référence (ma supposition éclairée ne l'est probablement pas), ce qui signifie que vous espérez que le retour reste statique pour le script complet ou que vous cassez des choses. Vous pouvez définir votre propre fonction courte ou callback qui vous fera enchaîner en tant que meilleure chose suivante. Par tout moyen, gardez le retour d'une fonction dans une variable si elle n'a besoin d'être évaluée qu'une seule fois, mais n'attendez pas de magie d'une référence quand le retour d'une fonction n'en est pas un.

Si la fonction renvoie, le code utilise probablement des références qui n'ont pas de sens et vous devez corriger cela dès que possible: P.

+0

Honnêtement, il y a quelque temps que je me suis amusé avec PHP. Est-ce que ce n'est pas une mauvaise pratique de créer des variables pour des choses comme ça? Qu'en est-il d'un scénario où vous ne voulez pas avoir à taper '$ this-> name'? – doomspork

+1

"ne veut pas avoir à taper" est toujours une mauvaise raison de modifier le code, et la raison principale pour laquelle il y a du code-complétion dans les éditeurs. Bien sûr, les résultats de la fonction de cache et les variables si vous êtes sûr qu'ils ne changeront pas, mais n'utilisez pas de références pour éviter de taper, les références peuvent facilement bloquer le code de manière difficile à détecter. – Wrikken

Questions connexes