Gibt es einen Geschwindigkeitsunterschied zwischen diesen beiden Versionen?
<?php echo $var; ?>
<?=$var?>
Welche empfehlen Sie, und warum?
Gibt es einen Geschwindigkeitsunterschied zwischen diesen beiden Versionen?
<?php echo $var; ?>
<?=$var?>
Welche empfehlen Sie, und warum?
Was empfehlen Sie?
Weder noch, es sei denn, Sie wollen wirklich HTML-Injektionen zulassen. (In 99 % der Fälle ist das nicht der Fall.)
<?php echo htmlspecialchars($var); ?>
Oder definieren Sie eine Funktion, die echo(htmlspecialchars($arg)) mit einem kürzeren Namen ausführt, um die ganze Tipperei zu vermeiden.
Ich füge eine späte Antwort hinzu, weil noch niemand dies nachgewiesen hat, aber die Antwort ist eindeutig nein, es gibt keinen Leistungsunterschied speziell weil es keinen Unterschied gibt überhaupt wie PHP diese beiden Codezeilen ausführt.
Der Interpreter sieht die identisch Code in beiden Fällen. Der Parser erzeugt genau denselben AST denn <?=
ist im Wesentlichen identisch mit <?php echo
. Es gibt keinen Unterschied in den Anweisungen, die der Interpreter ausführt, wenn Sie schreiben <?=
gegen <?php echo
.
Durch die Installation von php-ast können Sie das AST untersuchen, das von beiden Codezeilen erzeugt wird.
Angesichts dieser beiden Fälle...
# CASE 1
<?php echo $i %>
# CASE 2
<?= $i ?>
Der abstrakte Syntaxbaum für beide lautet identisch :
case 1
AST_STMT_LIST
0: AST_ECHO
expr: AST_VAR
name: "i"
case 2
AST_STMT_LIST
0: AST_ECHO
expr: AST_VAR
name: "i"
Dies bedeutet, dass PHP kann zur Laufzeit nicht zwischen diesen unterscheiden geschweige denn einen Leistungsunterschied feststellen.
Der Code, der diese Ausgabe erzeugt, lautet wie folgt und verwendet util.php :
<?php
require('util.php');
echo "case 1\n";
echo ast_dump(ast\parse_code('<?php echo $i ?>', $version=50));
echo "\n";
echo "case 2\n";
echo ast_dump(ast\parse_code('<?= $i ?>', $version=50));
echo "\n";
Optimierung ist hier irrelevant. Die Wahl ist eine Frage der persönlichen Vorliebe, zumal <?=
ist immer verfügbar, hat nichts mit kurzen Tags zu tun, war nie veraltet und soll auch nicht aus der Sprache entfernt werden.
Versuchen Sie nicht, damit zu optimieren, es ist nutzlos. Deaktivieren Sie stattdessen allow_short_tags (wegen der Probleme beim Laden von XML-Dateien) und schreiben Sie sauberen, lesbaren und verständlichen Code.
Selbst wenn es einen kleinen Unterschied gibt (der definitiv geringer als 10 % ist), ist es sinnlos, damit zu optimieren. Wenn Ihre Skripte langsam sind, sollten Sie sich zuerst Ihre Schleifen ansehen. Meistens kann man durch die Optimierung des Programmablaufs viel mehr Leistung gewinnen als durch die Verwendung einer seltsamen Syntax.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
2 Stimmen
Ich mag die kurze Syntax. Sie ist sauberer.