PHP: Ist es besser, auf 1 Zeile oder mehreren Zeilen zu verketten? Oder gibt es einen Unterschied?

8

Gibt es einen Unterschied oder ist einer besser als der andere der folgenden:

%Vor%

Oder

%Vor%

Gibt es einen Geschwindigkeitsunterschied oder gibt es einen Grund, warum Sie einen über den anderen auswählen würden?

    
Darryl Hein 10.01.2009, 19:19
quelle

9 Antworten

6

Es gibt einen kleinen Unterschied, wenn Sie die Zeichenfolge wiederholen.

%Vor%

ist etwas schneller als

%Vor%     
Ivan 10.01.2009, 19:31
quelle
19

Sowohl PEZ als auch Topbit sind korrekt. Ich möchte nur auf etwas hinweisen, von dem ich denke, dass es besser aussieht, als es hier zu sehen war:

%Vor%

versus

%Vor%

Ich bevorzuge den zweiten zu dem ersten, da es offensichtlich ist, dass Ihr Ergebnis der eine String $ var ist. Es verhindert auch dumme Fehler wie:

%Vor%     
jmucchiello 10.01.2009 20:19
quelle
6

Es ist nicht wichtig für ein paar kurze Saiten. Verwenden Sie, was klarer zu lesen ist.

Aber wenn Sie viele (z. B. Tausende) von ihnen haben, die nicht so kurz sind, werden Sie sie wahrscheinlich in einem Array behalten und sie zusammenführen wollen. (Wie es der Fall ist, ist ein solcher Code oft so einfach zu lesen wie die Verkettung der Strings mit ".=", Also opfert ihr keine Klarheit auf dem Altar der Performance.)

EDIT: Ich glaube nicht, dass mein oben genanntes Denken gültig ist. PHPs Strings sind veränderbar, oder?

    
PEZ 10.01.2009 19:32
quelle
3

Macht keinen Unterschied. Beide sind Verkettungen, also was immer am einfachsten zu lesen ist, was Sie verwenden sollten.

Wenn Sie nach der besten Leistung suchen, versuchen Sie es mit einem Array und implodieren Sie es, wenn Sie fertig sind.

%Vor%

Wie auch immer Sie es tun, der Geschwindigkeitsunterschied ist vernachlässigbar, es sei denn, Sie arbeiten mit Tausenden von großen Strings.

    
Christopher Nadeau 10.01.2009 20:27
quelle
2

Bei allem, was Sie manuell im Code verketten, spielt die Leistung wahrscheinlich keine Rolle, daher ist die Lesbarkeit wichtig. Für mich bedeutet das oft heredoc Syntax. Ich mag nicht, wie es meine Einrückungsstruktur bricht, aber es ist besonders nett, wenn Sie Zeilenumbrüche und / oder Tabs richtig in Ihre Zeichenfolgen einfügen möchten.

    
grossvogel 10.01.2009 20:01
quelle
0

Ich glaube nicht, dass Sie für so eine kurze Situation bemerken werden. Ich entscheide mich normalerweise aus Gründen der Lesbarkeit, die ich verwenden werde. Ich spalte nur in zwei Situationen, sonst in einer Zeile:

a) Erstellen einer mehrzeiligen Antwort, so dass der Code etwas nachahmt, was der Benutzer sehen wird. Ich habe festgestellt, dass es dadurch leichter fällt, Tippfehler und Fehler zu erkennen.

%Vor%

b) Zeilenlänge. Wenn die Zeile mein Fenster überläuft, werde ich es normalerweise aufteilen, so dass ich nicht ans Ende der Zeile gehen muss, um das Ende zu lesen. Die meisten Sprachen unterstützen ein Zeilenfortsetzungszeichen, so dass ich es nicht wirklich physisch im Code brechen muss, sondern nur eine Angewohnheit, die ich habe, seit ich in einigen Sprachen arbeite, die es nicht haben.

    
Kevin 10.01.2009 19:27
quelle
0

Der schnellste Weg, um eine große Menge an Daten in eine einzige Zeichenkette zu bekommen, ist die Ausgabepufferung, um die echo-Ausgabe zu erfassen.

%Vor%

Im Allgemeinen ist es unwahrscheinlich, dass es einen signifikanten Unterschied in der Geschwindigkeit Ihres Programms macht. Machen Sie es also offensichtlich, was Sie tun, denn Sie müssen es irgendwann wieder reparieren / aktualisieren. Lesbarkeit ist König.

    
Alister Bulman 10.01.2009 20:07
quelle
0

Es gibt keinen bedeutungsvollen Unterschied. Es ist nur eine Frage der Programmierpräferenz.

    
Hans 11.01.2009 10:14
quelle
0

Ich hatte eine Ahnung, dass das Erstellen eines Arrays und das anschließende Implodieren der schnellste Weg sein könnte. Ich habe mich geirrt! Aber ein $ str = $ str + $ bla zu machen, ist WIRKLICH langsam um die Größenordnung! Es ist nur wichtig, wenn Sie eine Menge Verkettungen machen. Hier ist mein Testcode:

%Vor%

Hier sind die Ergebnisse, die ich bekommen habe:

%Vor%     
Nigel Atkinson 13.11.2015 02:46
quelle

Tags und Links