sandrinoo Posté 31 Octobre 2013 Posté 31 Octobre 2013 Bonsoir à toutes et à tous, Un question qui doit vous paraître évidente, mais pas pour moi. Les 2 codes dessous génèrent le même résultat. Le premier est le plus correct et le plus lisible mais quel est celui qui génère le résultat le plus rapide ? <div id ="bloc"> ceci est une variable : <?php echo $var; ?> et celle la aussi : <?php echo $var2; ?>. </div> <?php echo "<div id =\"bloc\"> ceci est une variable : ".$var." et celle la aussi : ".$var2."</div>" ?> merci pour votre réponse. Sandy
Aenoa Posté 31 Octobre 2013 Posté 31 Octobre 2013 bonsoir, ce n'est pas avec cela qu'un script sera plus ou moins rapide, c'est surtout sur les grosses exécutions avec ouverture de DB et autres joyeusetées qu'un script peut être "plus lent". En soi, les deux se valent, mais je préfère la première pour une meilleure propreté du code.
Dadou Posté 1 Novembre 2013 Posté 1 Novembre 2013 Tu as deux autres variantes encore : <?php echo "<div id =\"bloc\"> ceci est une variable : $var et celle la aussi : $var2</div>" ?> Oui, un echo avec double quote est capable d'interpréter les variables et tu as le echo avec simple quote : <?php echo '<div id ="bloc"> ceci est une variable : '.$var.' et celle la aussi : '.$var2.'</div>' ?> En terme de performance, il y a très peu entre les deux, la deuxième est un poil plus rapide, car elle ne cherche pas à interpréter des variables dans le echo, mais cela ne se sent réellement que sur des millions d'itération. La plus rapide de toute est la première que tu as faite, mais, il faut vraiment un très grand nombre d'itération pour que cela influe réellement sur la rapidité d'un code, c'est une optimisation négligeable.
sandrinoo Posté 1 Novembre 2013 Auteur Posté 1 Novembre 2013 (modifié) merci Aenoa et Dadou pour vos réponses. Ah bon, je pensais qu'ouvrir et fermer sans arrêt des balises php (solution 1 de mon code) pouvait être plus long en exécution sur une page entière de code... Modifié 1 Novembre 2013 par sandrinoo
duplex13 Posté 2 Novembre 2013 Posté 2 Novembre 2013 Bonjour, Pour ma part, je préfère de loin les pages où le HTML généré l'est via un gestionnaire de template. C'est carrément plus propre, même si c'est difficile de supprimer tout le code HTML généré directement en php et dans ce cas, je préfère la solution de Dadou : <?php echo "<div id =\"bloc\"> ceci est une variable : $var et celle la aussi : $var2</div>" ?>
Ciseur Posté 6 Novembre 2013 Posté 6 Novembre 2013 Bonjour à tous, Tu as deux autres variantes encore : <?php echo "<div id =\"bloc\"> ceci est une variable : $var et celle la aussi : $var2</div>" ?>Oui, un echo avec double quote est capable d'interpréter les variableset tu as le echo avec simple quote :<?php echo '<div id ="bloc"> ceci est une variable : '.$var.' et celle la aussi : '.$var2.'</div>' ?>En terme de performance, il y a très peu entre les deux, la deuxième est un poil plus rapide, car elle ne cherche pas à interpréter des variables dans le echo, mais cela ne se sent réellement que sur des millions d'itération. J'ajouterais pour le dernier exemple de Dadou qu'il est préférable d'utiliser la virgule plutôt que le point (même si encore ici la différence est vraiment infime. <?php echo '<div id ="bloc"> ceci est une variable : ',$var,' et celle la aussi : ',$var2,'</div>' ?>
Dadou Posté 6 Novembre 2013 Posté 6 Novembre 2013 Il faut préciser que la virgule comme concatenateur ne fonctionne qu'avec echo, qui dans ce cas la est géré par PHP comme une fonction. Le concatenateur logique reste le point, et par soucis d'éviter les confusions il est mieux de garder l'usage du point
adn Posté 15 Novembre 2013 Posté 15 Novembre 2013 Pour ma part je dirai que les 2 codes sont mauvais et qu'il est préférable de séparer le code de la charte avec un template @++
Ernestine Posté 15 Novembre 2013 Posté 15 Novembre 2013 À l'origine PHP était principalement un langage de templating, donc ce n'est pas aberrant de s'en servir pour ça. Après sur une grosse appli, mieux vaut un moteur de template, mais sur des petits trucs, faire de l'affichage en php n'a rien de stupide. Sinon ceci : <?php echo "<div id =\"bloc\"> ceci est une variable : ".$var." et celle la aussi : ".$var2."</div>" ?> est pour le moins illisible ! Cette écriture : <div id ="bloc"> ceci est une variable : <?php echo $var; ?> et celle la aussi : <?php echo $var2; ?>. </div> est quand même beaucoup plus facile à relire et modifier.
adn Posté 15 Novembre 2013 Posté 15 Novembre 2013 Je suis d'acoord Ernestine, mais on sait comment les choses évoluent et petit deviendra plus gros... Autant prendre le bon pli dès le début, on gagne du temps après. Plus court et encore plus lisible <div id ="bloc"> ceci est une variable : <?=$var?> et celle la aussi : <?=$var2?>. </div>
Dadou Posté 15 Novembre 2013 Posté 15 Novembre 2013 Non, cette formulation n'est pas disponible sur de nombreux serveurs, c'est d'autant plus génant que le xml commence par le même tag.
Portekoi Posté 15 Novembre 2013 Posté 15 Novembre 2013 À l'origine PHP était principalement un langage de templating, donc ce n'est pas aberrant de s'en servir pour ça. Après sur une grosse appli, mieux vaut un moteur de template, mais sur des petits trucs, faire de l'affichage en php n'a rien de stupide. Sinon ceci : <?php echo "<div id =\"bloc\"> ceci est une variable : ".$var." et celle la aussi : ".$var2."</div>" ?> est pour le moins illisible ! Cette écriture : <div id ="bloc"> ceci est une variable : <?php echo $var; ?> et celle la aussi : <?php echo $var2; ?>. </div> est quand même beaucoup plus facile à relire et modifier. Ah ben tu vois, pour moi, je préfère la première solution. Le code est plus lisible pour moi. Mais c'est vraiment une question d'habitude
captain_torche Posté 15 Novembre 2013 Posté 15 Novembre 2013 Tout dépend de ce que tu veux mettre en valeur : tes noms de variable, ou la structure HTML ?
Ciseur Posté 15 Novembre 2013 Posté 15 Novembre 2013 Il faut préciser que la virgule comme concatenateur ne fonctionne qu'avec echo, qui dans ce cas la est géré par PHP comme une fonction. Le concatenateur logique reste le point, et par soucis d'éviter les confusions il est mieux de garder l'usage du point Pour ma part je dirai que les 2 codes sont mauvais et qu'il est préférable de séparer le code de la charte avec un template @++ Pour rappel la question était : quel est celui qui génère le résultat le plus rapide ? d'où ma réponse.
Dadou Posté 15 Novembre 2013 Posté 15 Novembre 2013 Qui est une réponse incomplète et risque d'induire en erreur bon nombre de débutants qui pourraient être amené à penser que la virgule est aussi un concatenateur logique. d'où ma précision. Et comme je le disais sur ma première réponse, c'est négligeable la différence d’exécution, et j'ajouterais qu'aucun test sérieux n'a pu réellement prouver qu'une écriture est plus rapide que l'autre.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant