2016-10-04 14 views
0

Ich weiß nicht, wie ich es testen kann.

Was schneller in PHP ist:

$test = "Text {$code}"; 

oder

$test = "Text ".$code; 

?

+0

'$ test = 'Text'. $ code; ' –

+0

@DarrenH gibt auch den Grund, warum? –

+0

Ehrlich gesagt gibt es absolut keinen wirklichen Leistungsunterschied. Wenn Sie Probleme mit der Leistung haben, suchen Sie nach dem falschen Ort, um Ihren Code schneller zu machen. –

Antwort

2

In der realen Welt, werden Sie nie einen Unterschied bemerken, so betonen nicht darüber :)

Es ist unwahrscheinlich, dass Sie entweder mit Ihrer Optionen keine spürbaren Geschwindigkeitsprobleme auftreten, aber lassen Sie mich erklären die Unterschiede sowieso und was die schnellste Lösung wäre.

Wenn Sie doppelte Anführungszeichen verwenden "wie dieses" wird PHP versuchen, jeden Text innerhalb der Anführungszeichen zu bewerten, weshalb Sie {$ code} darin verwenden können, könnten Sie natürlich auch die geschweiften Klammern verpassen und einfach schreiben "Text $ code", es sei denn, etwas ist komplexer als eine einfache Variable, die ausgewertet wird.

Ihr zweites Beispiel, das ich erwarte, wäre marginal langsamer (ich habe keinen Beweis dafür, aber ich nehme an, wir könnten einen einfachen Test dafür schreiben, falls erforderlich). Beim ersten Versuch, die Zeichenfolge auszuwerten, DANN, wenn eine Variable mit der Zeichenfolge verkettet wird, handelt es sich um eine separate Operation.

Wenn Geschwindigkeit Ihre wahre Sorge ist, dann verwenden Sie einfache Anführungszeichen. Der Inhalt von diesen wird nie ausgewertet, Sie können einfach die Textzeichenfolge nehmen und die Variable verketten.

So:

$test = 'Text ' . $code 
+0

In modernen PHP-Versionen gibt es absolut keinen oder keinen Leistungsunterschied von einfachen zu doppelten Anführungszeichen. –

+0

Als eine Nebenbemerkung, wie @Charlotte Dunois darauf hingewiesen, wenn Sie Leistungsprobleme auftreten, bitte posten Sie Ihren Code als eine separate Frage und wir werden helfen herauszufinden, was das Problem ist, weil es nicht das ist! –

+0

Ok, danke für die Erklärung. –

0

Ihre erste Option ist die schnellste:

Benchmarks laufen gegen PHP 5.2 und 5.3 zeigen, dass Strings mit Interpolation in doppelten Anführungszeichen Parsen ist nicht langsamer (und oft schneller) als single- zitierte Strings mit Verkettung. Wenn einfache Strings ohne Variablen verwendet werden, ist die Performance mit doppelt zitierten Strings aufgrund von Implementierungsdetails in der Engine deutlich besser.

Referenz here

+0

In modernen PHP-Versionen gibt es absolut keinen oder keinen Leistungsunterschied von einfachen zu doppelten Anführungszeichen. –

+0

Ich folgte dem Link und freute mich darauf, die Benchmarks zu sehen, aber postie.org spuckte 503 Fehler aus.Hast du die Benchmarks irgendwo anders veröffentlicht? –