web-dev-qa-db-fra.com

php: echo "", print (), printf ()

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!

27
menardmam

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. 

29
Asaph

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
6
Atmocreations

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.

2
JF Simon

http://us2.php.net/echo

<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é.

1
Will Shaver

Vous pouvez également utiliser la syntaxe suivante:

    echo <<<ENDOFTEXT
        <div>
            $var
        </div>
ENDOFTEXT;

Assurez-vous simplement que ENDOFTEXT n'est pas en retrait .

1
Anax

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.

0
Scott
0
Gumbo

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.

0
redben