Articles

PHP lernen: Strings und Variablen effizient konkatenieren – WPShout

Posted on

Ein etwas seltsamer Begriff, den Sie im Zusammenhang mit PHP immer wieder hören: „konkatenieren“. Ich erinnere mich noch daran, als ich dieses Wort zum ersten Mal hörte und keine Ahnung hatte, was es bedeutet. Es stellte sich heraus, dass es eine häufige und nützliche Aufgabe in PHP ist: zwei Strings zusammenzufügen, so dass wir einen einzigen String oder etwas anderes erhalten, das wir als Echo auf dem Bildschirm ausgeben können.

Heute werden wir alle wichtigen Bereiche der PHP-String-Konkatenation abdecken: wie man es macht, warum man es macht, was der PHP-Konkatenationsoperator ist und ein paar der Nachteile, wenn man die PHP-String-Konkatenation zu oft macht.

String-Konkatenation in PHP verstehen: Zwei Strings zusammenfügen

Wir verwenden „String-Konkatenation“, um Zeichenfolgen in PHP zusammenzufügen

So bauen wir eine Menge HTML in PHP. Und selbst wenn wir das nicht tun, verarbeiten wir oft Text. Aus diesen Gründen wollen wir oft zwei verschiedene, gut, strings zusammenbringen. (Damit meine ich den spezifischen Datentyp, eine Zeichenkette, im Gegensatz zu integer oder anderen.)

So verwenden wir „String-Verkettung“, um Dinge in PHP zusammenzufügen. Wir können damit eine Zahl in einen String einfügen, oder noch häufiger fügen wir den String mit einem anderen oder anderen String zusammen.

Der PHP-Konkatenationsoperator: .

Der PHP-String-Verkettungsoperator ist ein Punkt. ..

Wenn Sie schon in anderen Sprachen programmiert haben, haben Sie vielleicht schon einmal das + (Plus)-Symbol benutzt, um zwei (oder mehr) Strings zusammenzufügen. So funktioniert zum Beispiel die String-Verkettung in JavaScript. In PHP verwenden wir stattdessen das . (Punkt, oder Dezimalpunkt) Zeichen, um die String-Verkettung zu erreichen. Wenn Sie also den Punkt, ., besser zwei verschiedene Zeichenketten in Anführungszeichen, oder eine Variable und eine Zeichenkette, oder eine Variable und eine Variable, setzen, wird das Ergebnis eine einzige Zeichenkette sein, die PHP entweder ausgeben (zum Beispiel mit echo) oder weiterverarbeiten kann.

Von dem, was Sie aus dem Englischen gewohnt sind, mag der PHP-Verkettungsoperator als . seltsam aussehen. Aber ich verspreche Ihnen, sobald Sie wissen, was passiert, werden Sie sich daran gewöhnen und es ziemlich nahtlos lesen.

How to Concatenate Strings in PHP

In Ordnung, Zeit, konkret zu werden. Hier ist etwas Code, der zeigt, wie eine PHP-Verkettung in der Praxis aussieht. Hier sind drei verschiedene Möglichkeiten, wie wir echo die Zeichenkette „Hello World“ in PHP konkaten können:

echo "Hello World"; // outputs "Hello World"$hello = 'Hello';echo $hello.' World'; // outputs "Hello World"$world = 'World';$hello_world = $hello.' '.$world;echo $hello_world; // outputs "Hello World"

Der obige Code ist albern: Die zweiten beiden Beispiele sind unnötig kompliziert. Aber wir halten sie einfach, damit wir uns mit den Konzepten vertraut machen können.

Die allererste Zeile unseres Codebeispiels ist nur ein Beispiel für eine sehr umständliche Verwendung von echo in PHP, um einen String anzuzeigen. Sie werden dies tun, wenn Sie einen Text aus dem „PHP-Land“ in das HTML Ihrer Seiten einfügen wollen. Wir wissen, dass die Sequenz "Hello World" eine „Zeichenkette“ ist, weil sie durch doppelte (oder einfache) Anführungszeichen begrenzt ist.

Unser nächster Block definiert zunächst eine Zeichenkette, einfach das Wort Hello und fügt dann die Zeichenkette World hinzu, bevor er sie an die Ausgabe anhängt. In PHP ist das Anhängen von String an String super üblich. Wir tun es, um einen Teil der Sequenz weiter weg von der Stelle zu definieren, an der wir sie anzeigen wollen. (Oft viel weiter weg als in diesem Beispiel.)

Schließlich erzeugt unser letzter Block zwei neue Variablen: das Wort World und dann die Phrase Hello World als einen einzigen String. Letzteres gibt uns also ein Beispiel dafür, wie PHP Strings mit Trennzeichen zusammenfügt. In unserem Fall ist das Trennzeichen nur ein Leerzeichen. Ein Fehler, den ich oft in PHP-Code mache, ist das Vergessen des Leerzeichens, aber das ist ein leicht zu behebender Fehler. Fügen Sie einfach eine zusätzliche Zeichenkette mit einem Leerzeichen ein (oder ein Leerzeichen an eine andere Zeichenkette, wenn Sie das bevorzugen).

Kombinieren Sie Ihre PHP-Kräfte: Strings UND Variablen anhängen

Im obigen Code haben wir klare Beispiele für die PHP-String-Verkettung gesehen. Aber wir können mit PHP auch andere Variablentypen mit Strings kombinieren, innerhalb von Grenzen. Diese Grenzen: wir können keine Verkettung mit komplexen Datentypen wie Objekten oder Arrays in Strings machen, ohne zusätzliche Arbeit zu leisten.

Aber „einfachere“ PHP-Datentypen wie Integer und Floats (allgemein Zahlen) sind eine super häufige Sache, die man in PHP verkettet sieht. Das sieht dann etwa so aus:

$percentage = 12.1 + 9 + 41.21;echo 'Your final score: '.$percentage.' out of 100%.'; // outputs "Your final score: 62.31 out of 100%."$integer = 1 + 17;echo $integer.' centimeters in length'; // outputs "18 centimeters in length"

In beiden Beispielen fügen wir die Zahl (ein float im ersten Fall, ein integer im zweiten) per Verkettung direkt in den String ein. Da PHP das „Typ-Jonglieren“ für uns übernimmt, um diese Zahl in einen String zu verwandeln, können wir dies schnell und einfach tun. In PHP ist das Hinzufügen zu Strings mit Konkatenation einfach für grundlegende Typen mit offensichtlichen String-Versionen.

PHP String-Interpolation? Einfache oder doppelte Anführungszeichen verwenden?

Eine Sache, die ich selten benutze, die aber sehr gut zu verstehen ist, ist die PHP-String-Interpolation. Was ich (wie die meisten Leute, die das sagen) mit „String-Interpolation“ meine, ist, dass Sie ein $variable in einen String in PHP einbetten, und dieser wird sofort durch den zugrunde liegenden Wert des $variable ersetzt. Das würde also etwa so aussehen:

$number = 4;echo "She has $number cars in her garage."; // outputs "She has 4 cars in her garage."echo "She has {$number} cars in her garage."; // outputs "She has 4 cars in her garage."

Ein paar wichtige Dinge zum obigen Beispiel. Erstens: Beide echo-Anweisungen führen zur Ausgabe von „Sie hat 4 Autos in ihrer Garage.“ Zweitens: Wir wissen also, dass die umschließenden {} nicht angezeigt werden. Drittens ist es entscheidend, dass die beiden obigen Anweisungen und Zeichenketten doppelte Anführungszeichen verwenden: " und nicht einfache Anführungszeichen '. In PHP müssen Sie das öffnende und das schließende Anführungszeichen für Ihre Strings anpassen.

Weiterhin können Sie bei der Verwendung von doppelten Anführungszeichen der PHP-Engine erlauben, die Variable darin zu interpolieren. Wir könnten also dasselbe mit einfachen Anführungszeichen erreichen, wenn wir nur:

$number = 4;echo 'She has '.$number.' cars in her garage.'; // outputs "She has 4 cars in her garage."

Hier verwenden wir wieder den PHP-Verkettungsoperator, ., anstatt uns auf die PHP-String-Interpolation zu verlassen. Beide Optionen haben ihr Gutes und Schlechtes. Und alle drei funktionieren gut. Der Performance-Overhead bei der Verwendung von String-Interpolation bei Strings mit doppelten Anführungszeichen ist so gering, dass Sie sich darüber keine Gedanken machen sollten. Aber Sie werden hören, dass die Leute auf die (wahre) Tatsache hinweisen, dass das dritte Beispiel in diesem Abschnitt (sehr geringfügig) schneller ist.

Ein Kuriosum: .= ist eine Verkettungszuweisung, die in PHP zusammengesetzt wird

Zuletzt werden Sie dies manchmal verwendet sehen, und es ist sehr relevant für dieses Thema. Sie können die Kombination aus einem . und einem = sowohl als Zuweisung als auch als Verkettung verwenden. Um das besser zu verstehen, lassen Sie uns dieses Beispiel von vorhin noch einmal anschauen:

$hello = 'Hello';$world = 'World';$hello_world = $hello.' '.$world;echo $hello_world; // outputs "Hello World"

Ich habe am obigen Code nichts geändert. Aber Sie könnten PHP schreiben, um zwei Strings auf eine ganz andere Weise zu verbinden. Das sieht dann so aus:

$output = 'Hello';$output .= ' ';$output .= 'World';echo $output; // outputs "Hello World"

Das bedeutet also, dass am Ende unseres $output-Strings das Leerzeichen () angehängt wird, und dann das Wort World. Das Ergebnis ist also, dass wir genau die gleiche Ausgabe erhalten. Also effektiv jedes Mal, wenn Sie .= sehen, ist es das gleiche wie $output = $output.$new_thing; oder ähnlich. Ob Sie dieses Beispiel mögen oder nicht, ist eine Frage des persönlichen Geschmacks. Aber wenn Sie den Code anderer Leute lesen, bin ich mir sicher, dass Sie sehen werden, dass Leute dies von Zeit zu Zeit benutzen, also ist es gut, diesen Aspekt der PHP-Verkettung zu verstehen.

Nun gehen Sie und verketten Sie Ihre Strings, mit Bedacht

Bevor ich ganz zum Schluss komme, eine kurze Warnung: Die Fähigkeit zu erlernen, Strings mit PHP zu „verketten“ ist wichtig und sehr wertvoll. Aber es ist auch oft ein Zeichen dafür, dass Sie weniger effiziente Dinge tun, als Sie sollten. Templates (Dateien, die nur Ihr HTML + bereits angeordnete Variablen enthalten) sind oft eine bessere Lösung für die meisten Dinge, die Sie tun, als einfach viele Strings von HTML-Sequenzen und Variablen innerhalb einer WordPress functions.php-Datei zusammenzuschreiben.

Das heißt, Verkettung in PHP ist eine lustige und wichtige Sache, die man beherrschen sollte. Während ich denke, dass sie sparsam eingesetzt werden muss, kann ich auch sagen, dass es in den zehn Jahren, in denen ich PHP schreibe, wahrscheinlich keine einzige Woche gab, in der ich die Möglichkeiten der PHP-String-Verkettung nicht genutzt habe. Viel Glück!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.