php: echo"", print (), printf()
y a-t-il une meilleure façon de produire des données vers une page html avec PHP?
si j'aime faire une div avec un certain var en php, je vais écrire quelque chose comme ça
print ('<div>'.$var.'</div>');
ou
echo "'<div>'.$var.'</div>'";
Quelle est la bonne façon de le faire?
ou mieux, remplir un $tempvar
et l'imprimer une fois? comme ça:
$tempvar = '<div>'.$var.'</div>'
print ($tempvar);
en fait, dans la vraie vie, le var sera rempli de beaucoup plus!
8 réponses
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 délimitée par une virgule.
toujours retourner 1 ne semble pas particulièrement utile. Et une liste d'arguments délimitée par une virgule Peut être simulée avec appels multiples ou concaténation de chaîne de caractères. Donc, le choix entre echo
et print
est plutôt une question de style. La plupart du code PHP que j'ai vu utilise echo
.
printf()
est un analogue direct de c printf()
. Si vous êtes à l'aise dans le langage courant, vous pouvez utiliser printf()
. Beaucoup de gens dans la jeune génération cependant, trouver printf()
l 'syntaxe de caractères spéciaux pour être moins lisible que l'équivalent echo
code.
il y a probablement des différences dans les performances entre echo
, print
et printf
, mais je ne serais pas trop accroché sur eux car dans une application web pilotée par une base de données (domaine typique de PHP), l'impression de chaînes au client n'est presque certainement pas votre goulot d'étranglement. L'essentiel, c'est que l'un ou l'autre des trois fera le travail et que l'un ne sera pas meilleur que l'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 avec des guillemets. Avec des guillemets simples, ce n'est pas le cas. 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
Juste essayer ce que tu vas aimer le bien formaté quantité d'infos :
<?php
echo '<pre>';
var_dump($your_var);
echo '</pre>';
?>
OK, j'explique : définir un format html "code" et var_dump afficher la valeur, le type, les paramètres ... de la variable.
<div><? print($var); ?></div>
ou si vous n'avez pas d'étiquettes courtes, vous pourriez avoir besoin de
<div><?php print($var); ?></div>
si vous avez l'option short_open_tag activée, vous pouvez faire
<?=$var?>
mais certains trouvent ça bordélique.
Vous pouvez également utiliser la syntaxe suivante:
echo <<<ENDOFTEXT
<div>
$var
</div>
ENDOFTEXT;
assurez-vous juste que L'ENDOFTEXT n'est pas indenté .
vous pourriez faire quelque chose comme ça:
<div><?php echo $var; ?></div>
une des bonnes choses à propos de PHP est que vous pouvez l'insérer dans le HTML régulier, et accomplir des choses comme celles ci-dessus avec facilité. J'ai toujours utilisé echo moi-même en PHP. Je ne sais pas si c'est la "bonne" façon, mais c'est la plus facile.
alors que echo
et print
sont presque égaux, vous utilisez des valeurs différentes. Votre première valeur résultera en
<div><value of $var
><div>
alors que le second aboutira à
'<div>'.<value of $var
>.'<div>'
mais le reste est sémantiquement presque égal. Puisque echo
et print
ne sont pas des fonctions réelles mais des constructions linguistiques spéciales, la parenthèse dans votre premier exemple est juste envelopper le la valeur d'une chaîne de caractères et non la liste des paramètres.
j'ai lu quelque part que l'écho est plus rapide que l'impression. Mais c'est juste trop petit d'un gain de performance.