Aller au contenu

Rapidité code php ?


sandrinoo

Sujets conseillés

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


Lien vers le commentaire
Partager sur d’autres sites

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.


Lien vers le commentaire
Partager sur d’autres sites

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.


Lien vers le commentaire
Partager sur d’autres sites

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é par sandrinoo
Lien vers le commentaire
Partager sur d’autres sites

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>" ?>


Lien vers le commentaire
Partager sur d’autres sites

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 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.


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>' ?>
Lien vers le commentaire
Partager sur d’autres sites

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


Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

À 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.


Lien vers le commentaire
Partager sur d’autres sites

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>
Lien vers le commentaire
Partager sur d’autres sites

À 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 :)

Lien vers le commentaire
Partager sur d’autres sites

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 wink.gif

@++

Pour rappel la question était :

quel est celui qui génère le résultat le plus rapide ?

d'où ma réponse.

Lien vers le commentaire
Partager sur d’autres sites

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.


Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...