Quakenet/#php Tutorial

Hinweis: Wenn sie diese Seite von einer externen URL aufgerufen haben achten sie darauf das alle Kapitel aufeinander aufbauen. Stellen sie daher sicher dass sie alle vorherigen Kapitel gelesen haben, da sie sonst relevante Informationen übersehen.

Verkettungsoperator

  1. Verketten von Strings und Variablen

1. Verketten von Strings und Variablen

Ein Operator von PHP ist der Verkettungsoperator der als einzelner Punkt geschrieben wird (.). Dieser wird verwendet um zwei Ausdrücke miteinander zu verbinden.

<?php
'Max'.'Mustermann'// erzeugt den String "MaxMustermann"
?>

Dabei ist es egal ob es sich um Strings oder Variablen handeln die man verketten möchte. Auch Zahlen können so mit Strings verkettet werden.

<?php
'Foo'.'Bar';
'Bla'.$var;
$var1.$var2;
?>

Bei diesen Beispiel-Codes wurde zwar die Verkettung ausgerechnet, doch das Ergebnis wurde nicht verwendet. Da das ganze auch wieder als Ausdruck gilt kann es z.B. in eine Variable gespeichert werden oder direkt mit echo ausgegeben werden.

<?php
$texte 
'Foo'.'Bar';
echo 
$variable.'String';
?>

Die Anzahl der Verkettungen ist unbegrenzt. PHP verkettet intern dabei stehts weiterhin 2 Ausdrücke miteinander und nutzt das Ergebnis für die nächste Verkettung.

<?php
$name 
$vorname.' '.$nachname;
// vorname + ein leerzeichen + nachname
echo 'Ich heiße '.$name.', guten Tag.';
?>

Es gibt einige Stolperfallen wenn man Variablen an Strings anhängen möchte, die Strings jedoch single quotes und double quotes enthalten. Besonders im Bezug auf Strings mit HTML-Code entstehen einige Fehler.

<?php
// man wollte ein link <a href="index.php?section=XYZ">Link</a> haben, wobei
// XYZ aus einer Variablen gefüllt wird.
$var 'XYZ';
echo 
'<a href="index.php?section='.$var.'">Link</a>';   // eine richtig Möglichkeit
echo "<a href=\"index.php?section=\".$var.\">Link</a>";
// dies würde <a href="index.php?section=".XYZ.">Link</a> ausgeben, also nicht das was man möchte
echo '<a href="index.php?section=".$var.">Link</a>';
// dies würde <a href="index.php?section=".$var.">Link</a> ausgeben
?>

Viele irritiert die Tatsache dass man z.B. hier nach der Variable sowas wie .'" oder sogar ."\" schreiben muss. Jedoch muss man bedenken dass man nach dem Punkt . wieder einen neuen String benutzen will, in der man dann wieder escapen muss. Um diesen Stolperstein zu umgehen erzeugt man zuerst den HTML-Code komplett ohne Variable und fügt dann erst durch den Verkettungsoperator die Variable ein. Dabei muss man drauf achten welchen Stringtyp man verwendet hat, single quoted oder double quoted.

<?php
echo '<a href="index.php?section=XYZ">Link</a>';
//                               ^^^
//                 zuerst durch  '..'  ersetzen (was erstmal falsch ist)
//                                 |
//                                 V
echo '<a href="index.php?section='..'">Link</a>';
//                                ^^
//                  und dann die Variable einfügen
//                                   |
//                                   V
echo '<a href="index.php?section='.$var.'">Link</a>';
?>

Mit sprintf gibt es noch elegantere Möglichkeiten wie man den Inhalt einer Variablen in einen String bekommt.

Fragen zum Kapitel

Keine Fragen zum Kapitel vorhanden

Zurück zu Weiter zu
Copyright © bei den OPs von #php.de/QuakeNet Valid XHTML 1.0 Strict Valid CSS!