Page 1 sur 1

HTML dans du PHP, on m'aurait menti ?

Posté : 27 juin 2005, 17:39
par Dreck
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

Posté : 27 juin 2005, 17:42
par benjamin
il a tor mais si ton script ne mache pas asaille
<?php 
for($a = 0;$a < 10;$a++){ 
?> 
test <br> 
<?Php
} 
?> 

Posté : 27 juin 2005, 17:44
par zeus
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>
<?
}
?>

Posté : 27 juin 2005, 17:47
par Dreck
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 :)

Posté : 27 juin 2005, 17:47
par slipndi
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 :)

Posté : 27 juin 2005, 17:48
par benjamin
sur free sa marche une foit sur 2 si il y a seulement <?

Posté : 27 juin 2005, 19:02
par Cyrano
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");
?>

Posté : 27 juin 2005, 21:47
par naholyr
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>