Existe-t-il un meilleur moyen de générer des données en sortie sur une page HTML avec PHP?
Si j'aime faire une div avec du var en php, j'écrirai quelque chose comme ça
print ('<div>'.$var.'</div>');
ou
echo "'<div>'.$var.'</div>'";
Quelle est la bonne façon de faire cela?
Ou une meilleure façon, remplissez un $tempvar
et imprimez-le une fois? comme ça:
$tempvar = '<div>'.$var.'</div>'
print ($tempvar);
En réalité, dans la vraie vie, le var sera rempli de beaucoup plus!
Il y a 2 différences entre echo
et print
en PHP:
print
renvoie une valeur. Il retourne toujours 1.
echo
peut prendre une liste d'arguments séparés par des virgules à la sortie.
Toujours retourner 1 ne semble pas particulièrement utile. Et une liste d'arguments délimitée par des virgules peut être simulée avec plusieurs appels ou concaténation de chaînes. Donc, le choix entre echo
et print
revient plutôt au style. La plupart du code PHP que j'ai vu utilise echo
.
printf()
est un analogue direct de la fonction printf()
de c. Si vous êtes à l'aise avec le langage C, vous pouvez utiliser printf()
. La plupart des jeunes de la jeune génération trouvent cependant que la syntaxe des caractères spéciaux de printf()
est moins lisible que le code echo
équivalent.
Il y a probablement des différences de performances entre echo
, print
et printf
, mais je ne voudrais pas trop m'y attarder, car dans une application Web pilotée par une base de données (le domaine typique de PHP), imprimer des chaînes sur le client n'est certainement pas votre goulot d'étranglement. En bout de ligne, aucun des trois ne fera le travail et l'un n'est pas meilleur qu'un autre. C'est juste une question de style.
vous pouvez même écrire
$var = "hello";
echo "Some Text $var some other text";
// output:
// Some Text hello some other text
ou
print("Some Text $var some other text");
// output:
// Some Text hello some other text
ne fait pas une grande différence. Cela fonctionne uniquement avec les guillemets doubles. Ce n'est pas le cas avec des guillemets simples. Exemple:
$var = "hello";
echo 'Some Text $var some other text'; // Note the single quotes!
// output:
// Some Text $var some other text
ou
print('Some Text $var some other text'); // Note the single quotes!
// output:
// Some Text $var some other text
Essayez ceci, vous allez adorer la quantité d’informations bien formées:
<?php
echo '<pre>';
var_dump($your_var);
echo '</pre>';
?>
OK, j’explique: définit un format HTML "code" et var_dump affiche la valeur, le type, les paramètres ... de la variable.
<div><? print($var); ?></div>
Ou si vous n'avez pas de balises courtes, vous devrez peut-être
<div><?php print($var); ?></div>
si l'option short_open_tag est activée, vous pouvez le faire.
<?=$var?>
Mais certains trouvent que c'est compliqué.
Vous pouvez également utiliser la syntaxe suivante:
echo <<<ENDOFTEXT
<div>
$var
</div>
ENDOFTEXT;
Assurez-vous simplement que ENDOFTEXT n'est pas en retrait .
Vous pouvez faire quelque chose comme ça:
<div><?php echo $var; ?></div>
Une des choses intéressantes à propos de PHP est que vous pouvez l'insérer dans du HTML normal et accomplir des tâches comme celle décrite ci-dessus facilement. J'ai toujours utilisé echo moi-même en PHP. Pas sûr que ce soit la "bonne" façon, mais c'est la plus facile.
Bien que tandis que le second se traduira par Mais le reste est sémantiquement presque égal. Puisque Voir aussi https://stackoverflow.com/questions/1462581#1462636 et https://stackoverflow.com/questions/1163473#1163793 .echo
$var
echo
et print
ne sont pas de vraies fonctions mais des constructions de langage spéciales, la parenthèse de votre premier exemple englobe simplement la valeur de chaîne unique et non la liste de paramètres.
J'ai lu quelque part que l'écho est plus rapide que l'impression. Mais c'est tout simplement trop petit d'un gain de performance.