sielfried a écrit :
Ça dépend l'objectif, mais si on cherche du *.* je préfère encore scandir ou opendir/readdir selon le cas, perso.
|
Dans la pratique, opendir pose trop de problèmes, en particulier trop de personnes demandent comment supprimer . et .. ; un autre avantage de glob est qu'il retourne des noms de fichiers avec chemin relatifs, donc prêts pour être utilisés avec d'autres fonctions sur les fichiers alors qu'avec opendir le chemin relatif doit être rajouté avant d'utiliser les noms de fichiers dans les fonctions ultérieures ce qui rend le code moins clair.
sielfried a écrit :
Je dirais même au profit de require qui l'est encore plus, et qui permet de s'assurer qu'on n'a pas deux instructions d'inclusion là où une seule suffirait (évidemment, dans certains cas la version once est utile mais selon moi elle ne devrait être employée que lorsqu'on souhaite explicitement profiter de sa caractéristique). Enfin bref.
|
Je suis globalement d'accord avec toi, mais comme dans la majorité des cas un fichier n'a besoin d'être inclus qu'une seule fois, le _once est préférable par défaut ; sur SquirrelMail par exemple on a pu constater une baisse du temps de chargement de la configuration (de 30ms exactement sur les 250ms au total) en passant de include à include_once ; les résultats sont encore plus probants quand on utilise un accélérateur comme Zend, du fait que le script est inclus de manière statique dans le bytecode.
Citation :
Jamais eu d'E_NOTICE avec empty(), tu dois confondre.
|
empty($_GET['test']); peut provoquer une notice si test n'est pas définie dans la requête GET, ça peut arriver par exemple dans un formulaire avec des checkbox qui ne sont pas définies dans la requete si elles ne sont pas cochées. De manière générale, pour un formulaire, il vaut mieux vérifier que tout est bien défini avec un isset en série (du type isset($_GET['name'], $_GET['firstname'], ...)
et ensuite vérifier si certaines sont vides.
Erreur de ma part, empty est une structure de langage, aucun problème à l'utiliser.