Oui c'est une mauvaise pratique; pas il ne l'est pas.
Vous êtes susceptible d'obtenir à la fois des réponses, et voici pourquoi:
Si vous utilisez __autoload (ou équivalent), en appelant:
function someFunc(){
$n =newUndefinedClassName();}
est équivalent à:
function someFunc(){
include('path/to/UndefinedClassName.php');//may be require_once, include_once, include, or require//depending on how autoload is written
$n =newUndefinedClassName();}
Mais vous obtiendrez de meilleures performances de votre code si vous évitez d'utiliser __autoload. Et pour maintenir votre code, il est préférable de mettre tous vos includes en haut du script, comme vous le feriez pour import états dans d'autres langues.
Je suggère de cohérence. Si vous avez toujours appeler le include dans les fonctions, vous ne devriez pas avoir trop de problèmes, mais je choisirais les importations aux débuts de fichiers, ou comme autoloads.
Que faire si il y a d'autres déclarations à l'intérieur de UndefinedClassName.php dont la syntaxe est illégal lorsqu'il est utilisé à l'intérieur d'une définition de fonction?
Ce n'est pas ce qu'un autre développeur pouvait s'y attendre, et, comme tel, permettrait de réduire la maintenabilité du code.
"ce n'est pas ce qu'un autre développeur devra s'attendre à", à moins bien sûr, le développeur est en train de faire la même chose... Eh bien, je veux dire un "normal" développeur, bien sûr. Non-standard des pratiques mauvaises pratiques, de l'OMI. je suis d'accord avec ce que vous dites sur certains niveaux, mais il est important de distinguer standard dont vous parlez. Il n'y a pas un officiel standard, il y a seulement la façon dont d'autres programmeurs ont écrit le code dans le passé. La chose la plus proche à un officiel est la norme de codage de la spécification et de la syntaxe, qui est libéral pour une raison. Vrai - je ne parle pas d'un "standard " officiel", mais plus de "plus de pratique courante". Cela étant dit, je n'ai jamais mentionné un "standard" dans ma réponse pour une raison 😉 J'aimerais voir la ressemblance pourquoi je dirais que c'est une mauvaise pratique à l'utilisation de ces sans une très bonne raison: stackoverflow.com/questions/1995113/strangest-language-feature
C'est généralement une mauvaise pratique et doit être évitée. Vous devriez probablement envisager d'utiliser un autochargeur à la place.
Comme dit ailleurs, c'est fondamentalement la façon dont autochargeur œuvres. Oui, mais autochargeur n'ont pas la même lisibilité/maintenabilité des questions.
Oui c'est une mauvaise pratique; pas il ne l'est pas.
Vous êtes susceptible d'obtenir à la fois des réponses, et voici pourquoi:
Si vous utilisez
__autoload
(ou équivalent), en appelant:est équivalent à:
Mais vous obtiendrez de meilleures performances de votre code si vous évitez d'utiliser
__autoload
. Et pour maintenir votre code, il est préférable de mettre tous vosincludes
en haut du script, comme vous le feriez pourimport
états dans d'autres langues.Je suggère de cohérence. Si vous avez toujours appeler le
include
dans les fonctions, vous ne devriez pas avoir trop de problèmes, mais je choisirais les importations aux débuts de fichiers, ou commeautoloads
.UndefinedClassName.php
dont la syntaxe est illégal lorsqu'il est utilisé à l'intérieur d'une définition de fonction?OriginalL'auteur zzzzBov
Je voudrais l'éviter.
Ce n'est pas ce qu'un autre développeur pouvait s'y attendre, et, comme tel, permettrait de réduire la maintenabilité du code.
Eh bien, je veux dire un "normal" développeur, bien sûr. Non-standard des pratiques mauvaises pratiques, de l'OMI.
je suis d'accord avec ce que vous dites sur certains niveaux, mais il est important de distinguer standard dont vous parlez. Il n'y a pas un officiel standard, il y a seulement la façon dont d'autres programmeurs ont écrit le code dans le passé. La chose la plus proche à un officiel est la norme de codage de la spécification et de la syntaxe, qui est libéral pour une raison.
Vrai - je ne parle pas d'un "standard " officiel", mais plus de "plus de pratique courante". Cela étant dit, je n'ai jamais mentionné un "standard" dans ma réponse pour une raison 😉
J'aimerais voir la ressemblance pourquoi je dirais que c'est une mauvaise pratique à l'utilisation de ces sans une très bonne raison: stackoverflow.com/questions/1995113/strangest-language-feature
OriginalL'auteur Reed Copsey
C'est de cette façon classe chargeurs de travail. Ce n'est pas nécessairement une mauvaise pratique.
Dépend de ce que la fonction ne et pourquoi vous le faites. À l'aide de chargement automatique peut être plus approprié.
OriginalL'auteur Arnaud Le Blanc
C'est généralement une mauvaise pratique et doit être évitée. Vous devriez probablement envisager d'utiliser un autochargeur à la place.
Oui, mais autochargeur n'ont pas la même lisibilité/maintenabilité des questions.
OriginalL'auteur keithjgrant
Si vous avez des raisons pour cela, je ne vois rien de mal à ce sujet.
OriginalL'auteur Jan