HTML dans du PHP, on m'aurait menti ?

Eléphanteau du PHP | 11 Messages

27 juin 2005, 17:39

Chalut

Voila, quelqu'un m'a dit que ceci n'était pas joli ::
<?php
for($a = 0;$a < 10;$a++){
?>
test <br>
<?
}
?>
D'après cette personne, vu que c'est dans une boucle, on peut pas utiliser de html de cette façon, il a raison ? :roll:

Merchi :D

Eléphant du PHP | 54 Messages

27 juin 2005, 17:42

il a tor mais si ton script ne mache pas asaille
<?php 
for($a = 0;$a < 10;$a++){ 
?> 
test <br> 
<?Php
} 
?> 

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 17:44

D'un point de vue théorique, cette écriture fonctionne parfaitement

ensuite, pour la pratique, je vois 2 cas :
- un petit peu de code HTML : c'est pas jolie à lire
- un gros code HTML : je suis partisant de ne pas surcharger inutilement les serveurs donc d'éviter d'utiliser un echo pour écrire une phrase qui va toujours apparaitre et qui ne contient pas de variable

Dans ton exemple, je trouve que
<?php
for($a = 0;$a < 10;$a++){
  echo "test <br>";
}
?>
serait plus propre mais si tu as plus de 5 lignes, je te conseille l'autre méthode
<?php
for($a = 0;$a < 10;$a++){
?>
<table>
  <tr>
    <td>Coucou</td>
  </tr>
  <tr>
    <td>C'est bon</td>
  </tr>
</table>
<?
}
?>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 11 Messages

27 juin 2005, 17:47

il a tor mais si ton script ne mache pas asaille
Sur mon wamp5 ça marche très bien, je suppose que c'est le manque du 'php' après le <? qui fait que ça ne passe pas partout :roll:

Zeus :: ok merci pour le conseil :)

Eléphant du PHP | 281 Messages

27 juin 2005, 17:47

Bonjour, ben je suppose que ca dépend de ton envie, mais dison que utilisé du html à l'interieur du for sans passé par des echo je trouve ca moin lisible de mon côté, mais le html et php sont fait pour être coupler a mort donc je suppose que ca pose pas de soucis :)

Eléphant du PHP | 54 Messages

27 juin 2005, 17:48

sur free sa marche une foit sur 2 si il y a seulement <?

Mammouth du PHP | 19672 Messages

27 juin 2005, 19:02

Petites règles de base en programmation: ne pas exiger un effort inutile à l'interpréteur PHP. Quand on peut éviter de mettre du html dans un echo() ou un print(), c'est techniquement toujours mieux. Le html est interprété coté client et n'a nullement besoin de passer dans l'interpréteur PHP.

Donc il est vivement recommandé de préférer ceci:
<ul>
<?php
for($i = 0; $i < 10; $i++)
{
?>
  <li><?php echo($liste[$i]); ?></li>
<?php
}
?>
</ul>
à ceci :
<?php
echo("<ul>\n");
for($i = 0; $i < 10; $i++)
{
  echo("<li>". $liste[$i] ."</li>\n");
}
echo("</ul>\n");
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

27 juin 2005, 21:47

Il y a même une syntaxe alternative très chouette qui rend un peu plus lisible ce genre d'écriture
<ul>
<?php for($i = 0; $i < 10; $i++): ?>
  <li><?= $liste[$i] ?></li>
<?php endfor ?>
</ul>