Quand devrais-je utiliser printf au lieu d'echo en PHP et pourquoi? Je ne comprends tout simplement pas pourquoi c'est important de comprendre. Merci!A quoi sert printf en PHP?
Répondre
Il est utilisé de la même manière qu'il est utilisé en C, pour substituer des valeurs formatées dans une chaîne de format.
Il existe littéralement des centaines d'exemples d'utilisation sur le sprintf
manual page.
Vous pouvez obtenir un formatage utile de variables (remplissage nul, alignement, largeur, etc.) qui nécessiterait un echo
accompagné de plusieurs appels de fonction.
Par exemple, à droite justifier et zéro-pad une chaîne de 10 caractères, mais tronque si plus de 10 caractères:
printf('[%010.10s]', $string);
vs
$tmp = '';
if (strlen($string) > 10)
$tmp = substr($string, 0, 10);
else
$tmp = str_pad($x, 10, '0', STR_PAD_LEFT);
echo $tmp;
Vous pouvez facilement les numéros de format dans octal, hexadécimal ou binaire sans le fouillis de les exécuter à travers une fonction, en stockant le résultat dans une variable temporaire et en le passant par echo
. Il y a beaucoup, beaucoup plus d'utilisations pour la famille de fonctions printf
.
+1, contrairement à la question de l'OP, 'sprintf' est un outil vraiment inestimable dans beaucoup d'endroits. – casablanca
Cela fait plus de sens pourquoi je l'utiliserais sur l'écho. Merci beaucoup, j'ai essayé de google pour un jour ou deux, et mon ami m'a redirigé ici! Je vous remercie! – BretHudson
printf vous permet de passer des paramètres afin que vous puissiez le faire:
printf("My name is %s and my favorite color is %s", $name, $color);
ou vous pouvez utiliser l'écho qui fait la même chose, mais ce ne est pas aussi propre:
echo "My name is $name and my favorite color is $color"
Il vient que l'on tu préfères.
Cette technique devient d'autant plus importante pour les traductions avec des variables incorporées: 'printf (__ ('Bonjour,% s, comment allez-vous?'), $ Username) ', la chaîne traduite est' '' ''% s, お 元 気 で すか? – deceze
Au travail, nous utilisons cela en combinaison avec Zend_Translate tout le temps. – Vic
- printf - Affiche une chaîne formatée: http://us2.php.net/manual/en/function.printf.php
- echo - Affiche une ou plusieurs chaînes: http://us2.php.net/manual/en/function.echo.php
printf()
vous permet de formater les variables d'une certaine manière. Par exemple, vous pouvez être sûr que quelque chose qui sera mis en %d
sera toujours affiché comme un nombre. Vous pouvez afficher des nombres à virgule flottante avec un certain nombre de chiffres après le point décimal. Vous pouvez afficher les nombres dans les notations scientifiques. Vous pouvez convertir les nombres en octal/hex.
Si vous souhaitez utiliser l'un des échos ci-dessus, vous devez appeler une fonction ou une autre avant de placer ces variables dans une chaîne entre guillemets. Savoir comment utiliser printf()
rend votre travail plus simple.
Et il devient encore plus puissant lorsque vous pouvez saisir la sortie en utilisant sprintf()
.
http://www.linuxquestions.org/questions/programming-9/php-printf-vs-echo-649387/ – sunn0
PHP, me semble-t-il, accumulé de nombreuses langues, et il y a plusieurs façons de faire tout. printf est là pour les programmeurs C, echo est là pour les scripteurs shell. quelque chose pour tout le monde. –
La documentation API existe pour une raison. –