Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Datentypen
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite PHP-Skripte
Seite PHP Befehlsreferenz
Seite PHP5 Praxisbuch
Seite Gratis-Videolektionen*
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

Seite Anbieterverzeichnis

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 



 

String/Zeichenketten




Ein String oder auch Zeichenkette genannt ist eine Folge von Buchstaben, Ziffern und Sonderzeichen. Ein String wird von Anführungszeichen eingeschlossen, entweder von einfachen (Apostrophen) oder doppelten. Hierbei ist zu beachten, dass unbedingt gerade Anführungszeichen +<2> und Apostrophe +<#> verwendet werden. Im Gegensatz zu anderen Programmiersprachen ist es hierbei egal, ob einfache oder doppelte Anführungszeichen verwendet werden, Hauptsache, die Zeichenkette wird mit derselben Art von Anführungszeichen beendet wie sie eingeleitet worden ist.



$meineMutter = "Gülten";
$meineSchwester = 'Caroline';



Die verschiedenen Anführungszeichen haben unter anderem den folgenden Sinn. Wenn Sie beispielsweise ein Apostroph in einer Zeichenkette verwenden wollen, können Sie diese Zeichenkette schlecht mit Apostrophen eingrenzen, da der PHP-Interpreter dann nicht weiss, wo die Zeichenkette aufhört. In diesem Fall müssen Sie die andere Sorte von Anführungszeichen verwenden.


Beispiel



// Fehlerhaft
$spruch = 'Ich bin's!';
// Korrekt
$spruch = "Ich bin's!";



Wenn man aber in der Verlegenheit steht, beide Arten von Anführungszeichen in einer Zeichenkette verwenden zu müssen, kommt man in Schwierigkeiten. Hier hilft der Backslash (\) weiter. Das dem Backslash folgende Zeichen wird entwertet, d.h., es nimmt in der Zeichenkette keine besondere Bedeutung ein. Beim Anführungszeichen oder Apostroph bedeutet das, dass die Zeichenkette hiermit nicht beendet wird.


Beispiel



// Backslash
$spruch = 'Ich bin\'s!';



Wenn man nun den Backslash selbst in der Zeichenkette verwenden will, muss man auch ihn entwerten.


// Verzeichnis
$dateiPfad = "C:\PROGRAMME";




Hinweis: Sollten Sie vorhaben anderen Zeichen zu escapen, wird der Backslash ebenfalls ausgegeben! Daher besteht für gewöhnlich keine Notwendigkeit den Backslash selbst zu escapen.



Die Kombination eines Zeichens mit einem vorangestellten Backslash wird übrigens als Escape-Sequenz bezeichnet. Neben den Anführungszeichen können noch eine Reihe weiterer Zeichen in PHP nur durch eine solche Escape-Sequenz dargestellt werden. Diese werden Ihnen weiter unten in diesem Abschnitt vorgestellt.


Syntax

Ein String kann auf drei verschiedene Weisen geschrieben werden.
. Einfache Anführungszeichen (single quoted)
. Doppelte Anführungszeichen (double quoted)
. Heredoc Syntax


Einfache Anführungszeichen (Single quoted)

Der leichteste Weg einen einfachen String zu schreiben, ist der Einschluss in einfache Anführungszeichen (').



<?php
// Ausgabe - PHP 5 lässt es krachen
echo 'PHP 5 lässt es krachen';

// Ausgabe - Herzlich Willkommen, Wir sind Ihre...
echo 'Herzlich Willkommen,
      Wir sind Ihre...'
;
?>



Anders als bei den zwei anderen Schreibweisen werden Variablen innerhalb von singlequoted Strings nicht ausgewertet.


<?php
$person 
"Caroline";

// Ausgabe - Guten Morgen, $person
echo 'Guten Morgen, $person';
?>




Doppelte Anführungszeichen (Double quoted)

Wenn ein String in doppelten Anführungszeichen (") eingeschlossen wird, versteht PHP mehr Escape-Folgen für spezielle Zeichen:


ZeichenfolgeBedeutung
\nZeilenvorschub (LF oder 0x0A als ASCII-Code)
\rWagenrücklauf (CR oder 0x0D als ASCII-Code)
\tTabulator (HT oder 0x09 als ASCII-Code)
\Backslash / Rückstrich
$Dollar-Symbol
\ 'Einfaches Anführungszeichen
\"doppelte Anführungszeichen
\[0-7]{1,3}die Zeichenfolge, die dem regulären Ausdruck entspricht ist ein Zeichen in Oktal-Schreibweise
\x[0-9A-Fa-f]{1,2}die Zeichenfolge, die dem regulären Ausdruck entspricht ist ein Zeichen in Hexadezimal-Schreibweise



Sollten Sie versuchen, sonstige Zeichen zu escapen wird der Backslash ebenfalls ausgegeben.

Der wohl wichtigste Vorteil von doublequoted Strings ist die Tatsache, dass Variablen ausgewertet werden.


<?php
$person 
"Caroline";

// Ausgabe - Guten Morgen, Caroline
echo "Guten Morgen, $person";
?>




Heredoc

Der Einsatz von Heredoc wurde bereits im Abschnitt Einführung in PHP beschrieben, daher hier lediglich einige weitere Besonderheiten.

Heredoc-Text funktioniert wie ein String innerhalb doppelter Anführungszeichen, nur ohne doppelte Anführungszeichen. Anführungszeichen innerhalb von heredoc-Texten müssen also keiner Sonderbehandlung (escapen) unterzogen werden, aber Sie können dennoch die oben aufgeführten Escape-Anweisungen verwenden. Variablen werden ausgewertet.


<?php
echo <<<ANREDE
Herzlich Willkommen,
Meine Damen und Herren...
ANREDE;
?>





Variablen-Analyse (parsing)

Wird ein String in doppelten Anführungszeichen oder mit heredoc angegeben, werden enthaltene Variablen ausgewertet (geparst).

Es gibt zwei Syntax-Typen, eine einfache und eine komplexe.
. Die einfache Syntax ist die geläufigste und bequemste. Sie bietet die Möglichkeit eine Variable, einen Array-Wert oder eine Objekt-Eigenschaft auszuwerten (parsen).
. Die komplexe Syntax wurde in PHP 4 eingeführt und ist an den geschweiften Klammern {}erkennbar, die den Ausdruck umschließen.


Einfache Syntax

Sobald ein Dollarzeichen ($) auftaucht, wird der Parser versuchen einen gültigen Variablennamen zu bilden. Schließen Sie Ihren Varaiblennamen in geschweifte Klammern ein, wenn Sie ausdrücklich das Ende des Namens angeben wollen.


<?php
$marke 
'Audi';

/*
 Ausgabe - Auid's sind goldig
 Da ' kein gültiges Zeichen für einen
 Variablennamen darstellt.
*/
echo "$marke's sind goldig";

/*
 Ausgabe - Sie haben zahlreiche gefahren
 Da s ein gültiges Zeichen für einen
 Variablennamene darstellt, wird der
 Interpreter nach einer Variablen mit
 dem Namen $markes suchen.
*/
echo "Sie haben zahlreiche $markes gefahren";

//Ausgabe - Sie hanen zahlreiche Audis gefahren
echo "Sie haben zahlreiche ${marke}s gefahren";
?>



Auf ähnliche Weise können Sie erreichen, dass ein Array-Index oder eine Objekt-Eigenschaft ausgewertet wird. Bei Array-Indizes markiert die schließende eckige Klammer (]) das Ende des Index. Für Objekt-Eigenschaften gelten die gleichen Regeln wie bei einfachen Variablen, obwohl es bei Objekt-Eigenschaften keinen Trick gibt, wie dies bei Variablen der Fall ist.



<?php
$autos 
= array( 'Viper' => 'gelb' 'Ferrari' => 'rot' );

/*
 Ausgabe - Ein Ferarri ist rot
 Achtung: außerhalb von String-Anführungszeichen funktioniert das anders.
*/
echo "Ein Ferarri ist $autos[Ferrari].";
?>





<?php
// Klasse
class Fahrzeug
{
    var 
$plaetze;
    
    function 
Fahrzeug()
    {
        
$this->plaetze 4;
    }
}

// Objekt
$meinauto = new Fahrzeug;

// Ausgabe - Dieses Auto hat Platz für 4 Personen.
echo "Dieses Auto hat Platz für $meinauto->plaetze Personen.";

// Ausgabe - Dieses Auto hat Platz für Personen.
// Funktioniert nicht. Für eine Lösung siehe die komplexe Syntax.
echo "Dieses Auto hat Platz für $meinauto->plaetze00 Personen.";
?>



Für komplexere Strukturen sollten Sie die komplexe Syntax verwenden.


Komplexe (geschweifte) Syntax

Diese wird nicht komplex genannt, weil etwa die Syntax komplex ist, sondern weil Sie auf diesem Weg komplexe Ausdrücke einbeziehen können.

Tatsächlich können Sie jeden beliebigen Wert einbeziehen, der einen gültigen Namensbereich als String besitzt. Schreiben Sie den Ausdruck einfach auf die gleiche Art und Weise, wie außerhalb des Strings, und umschließen diesen mit { und }. Da Sie '{' nicht escapen können, wird diese Syntax nur erkannt, wenn auf { unmittelbar $ folgt. (Benutzen Sie "{$" oder "\{$" um ein wörtliches "{$" zu erhalten.) Hier ein Beispiel:


<?php
// Klasse
class Fahrzeug
{
    var 
$plaetze;
    
    function 
Fahrzeug()
    {
        
$this->plaetze 4;
    }
}

// Objekt
$meinauto = new Fahrzeug;

// Ausgabe - Dieses Auto hat Platz für 400 Personen.
echo "Dieses Auto hat Platz für {$meinauto->plaetze}00 Personen.";
?>




Umwandlung von Zeichenketten

Sobald ein String als numerischer Wert ausgewertet wird, wird der resultierende Wert und Typ wie folgt festgelegt. Der String wird als float ausgewertet, wenn er eines der Zeichen '.', 'e' oder 'E' enthält. Ansonsten wird er als Integer-Wert interpretiert.

Der Wert wird durch den Anfangsteil des Strings bestimmt. Sofern der String mit gültigen numerischen Daten beginnt, werden diese als Wert benutzt. Andernfalls wird der Wert 0 (Null) sein. Gültige numerische Daten sind ein optionales Vorzeichen, gefolgt von einer oder mehreren Zahlen (optional mit einem Dezimalpunkt). Wahlweise kann auch ein Exponent angegeben werden. Der Exponent besteht aus einem 'e' oder 'E', gefolgt von einer oder mehreren Zahlen.


<?php
$wert 
"10.5";
// Ausgabe - $wert ist float (11.5)
echo $wert;

$wert2 "Matze3";
// Ausgabe - $wert2 ist integer (1)
echo $wert2;

$wert3 "10 Autos" 1;
// Ausgabe - $wert3 ist integer (11)
echo $wert3;
?>





 


Datentypen
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de