Possible en double:
Reference: Comparing PHP's print and echoEn quoi l'écho et l'impression sont-ils différents en PHP?
Est-ce qu'il ya une différence majeure et fondamentale entre ces deux fonctions en PHP?
Possible en double:
Reference: Comparing PHP's print and echoEn quoi l'écho et l'impression sont-ils différents en PHP?
Est-ce qu'il ya une différence majeure et fondamentale entre ces deux fonctions en PHP?
De: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
vitesse. Il y a une différence entre les deux, mais en termes de rapidité, cela devrait être indifférent à celui que vous utilisez. echo est légèrement plus rapide car il ne définit pas une valeur de retour si vous voulez vraiment descendre à la nitty gravely.
Expression. print()
se comporte comme une fonction que vous pouvez faire: $ret = print "Hello World"
; Et $ret
sera 1
. Cela signifie que l'impression peut être utilisée dans le cadre d'une expression plus complexe où l'écho ne le peut pas. Un exemple du manuel PHP:
$b ? print "true" : print "false";
impression fait également partie de la table de priorité dont il a besoin d'être si elle doit être utilisé dans une expression complexe. Il est à peu près au fond de la liste de priorité cependant. Seulement "," AND, OR et XOR sont plus bas.
echo expression [, expression[, expression] ... ]
Mais echo (expression, expression)
n'est pas valide. Ceci serait valide: echo ("howdy"),("partner")
; le même que: echo "howdy","partner"
; (Mettre les crochets dans cet exemple simple, sert sans but car il n'y a pas de problème de priorité des opérateurs avec un seul terme comme ça.)Ainsi, l'écho sans parenthèses peut prendre plusieurs paramètres, qui obtiennent concaténer:
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print()
ne peut prendre un paramètre:
print ("and a 123");
print "and a 123";
Comme le suggère le manuel PHP.net, lisez this discussion.
Une différence majeure est que echo
peut prendre plusieurs paramètres à la sortie. .: par exemple
echo 'foo', 'bar'; // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
Si vous cherchez à évaluer les résultats d'une instruction de sortie (comme ci-dessous), utilisez print
. Sinon, utilisez echo
.
$res = print('test');
var_dump($res); //bool(true)
echo ne pas accept echo ('foo', 'bar') ;, mais accepte echo 'foo', 'bar'; – grilix
Je sais que cette réponse est ancienne, mais n'imprime pas toujours 1? D'ailleurs, quand et pourquoi auriez-vous besoin de tester pour être sûr que quelque chose soit imprimé? C'est tout simplement pas nécessaire, jamais! Franchement, l'impression est inutile et devrait être supprimée, en faveur d'ECHO! –
Ils sont:
Pour ajouter aux réponses ci-dessus, alors que l'impression ne peut prendre un paramètre, il permettra de concaténation de valeurs multiples, à savoir:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
Ceci est 5 valeurs dans 1 paramètre
Je pense que print()
est plus lent que echo
.
J'aime utiliser print()
que dans des situations telles que:
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
Pouvez-vous le rendre plus clair, monsieur? – Legend
Echo peut également être utilisé dans une opération ternaire: echo ($ b)? 'vrai faux'; – philjohn
@philjohn Je suis sûr que votre déclaration est équiva- lente à: echo (($ b)? 'True': 'false'); et non: (echo ($ b))? 'vrai faux'; L'écho ne fait donc pas partie de la condition réelle de l'opération ternaire. – Bart
Dans l'intérêt de faire quelque chose de pas faisable avec 'echo':' $ b? print "true": die ("false"); ' – Brilliand