Textové reťazce sú v PHP často používané a existuje veľa možností, ako ich zapísať.
Ak chcete vypísať jednoduchý text presne tak, ako ho vidíte, môžete použiť jednoduché úvodzovky (apostrofy).
echo 'Mám 3 doláre: $$$'; echo 'Text môže dokonca aj presahovať riadky!';
Ak chcete vnútri takéhoto textu použiť apostrof, musíte pred neho dať spätné lomítko.
echo 'Čobys\' rád?'; // vypíše: Čobys' rád?
Text, ktorý je v dvojitých úvodzovkách, ponúka oveľa viac možností. Pomocou daných kombinácií znakov môžeme do reťazca vložiť špeciálne znaky.
echo "Jeden riadok\n"; echo "Druhý riadok";
Kombinácia \n
vloží do zdrojového kódu vygenerovanej stránky nový riadok. V prehliadači však uvidíte len medzeru - v HTML sa nový riadok presa vkladá inak - tagom <br>
.
Podobne môžeme vkladať ďalšie špeciálne znaky. Prehľad je v tejto tabuľke:
Kombinácia | Znak |
---|---|
\n | nový riadok |
\r | nový riadok na MacOS |
\t | tabulátor |
\\ | spätné lomítko |
\$ | dolár |
\" | dvojitá úvodzovka |
Taktiež je možné zapísať akýkoľvek znak, ak poznáme jeho číselnú ASCII hodnotu. Za spätné lomítko je potrebné napísať hodnotu buď v osmičkovej alebo hexadecimálnej sústave.
echo "Toto je A: \x41"; echo "<br>"; echo "A toto tiež: \101";
V PHP 4 pribudol tretí typ zapisovania reťazcov - tzv. Heredoc syntax. Hodí sa skôr na dlhšie texty, obsahujúce úvodzovky. Začína sa znakmi <<<
, potom nasleduje ľubovoľné slovo (bez špeciálnych znakov) a nový riadok. Reťazec ukončíte tým istým slovom, začatým na novom riadku. Znie to zložito, ale je to jednoduché:
$dlhy_text = <<<NIECO Tu je text, ktorý môže obsahovať hocijaké úvodzovky: " ' " ' A nemusíte ich nijak špeciálne zapisovať. NIECO; echo $dlhy_text;
Na spájanie dvoch reťazcov používame prekvapivo obyčajnú bodku.
$zaciatok = "Začiatok"; echo $zaciatok." a koniec"; // vypíše: Začiatok a koniec
Poznáme tiež operátor .=
, ktorý má podobnú funkciu ako +=
, len miesto sčítavania spája reťazce:
/* 1. spôsob */ $ret = "abe"; $ret = $ret."ceda"; /* to isté 2. spôsobom */ $ret = "abe"; $ret .= "ceda";
PHP má jednu výbornú vlastnosť - názvy premenných priamo v reťazci sa nahradia ich hodnotami. Funguje to, ak používate dvojité úvodzovky alebo Heredoc syntax.
$ulica = "Šikmá"; echo "Moja adresa je $ulica 12.";
Výsledok príkladu: Moja adresa je Šikmá 12.
Existujú aj ďalšie varianty - s použitím zložených zátvoriek:
$meno = "Zelen"; echo "Moje meno je ${meno}ý. "; echo "Sestra sa volá {$meno}á.";
Na stránke sa zjaví:
Moje meno je Zelený. Sestra sa volá Zelená.
Ako zistiť napr. tretí znak reťazca? Za názov premennej pridáme hranaté zátvorky a v nich index (poradie) znaku. Pozor, prvý znak má index 0, takže pre tretí znak je rovný dvom.
$abeceda = "abcdefghijkl..."; echo $abeceda[2];
Znaky sa dajú nielen čítať, ale i zapisovať.
$abeceda[0] = "A"; echo $abeceda;