Ciągi znaków w PHP
Z ToProste
Ciągi znaków w PHP ograniczane są cudzysłowami (") lub apostrofami (').
Do czego w PHP dwa sposoby oznaczania ciągu znaków? Nie wystarczy jeden?
Zapisy te różnią się sposobem interpretacji ciągu.
- W ciągach ograniczonych cudzysłowami zmienne są zastępowane przez wartość jaką posiadają.
- W ciągach ograniczonych apostrofami zmienne nie są zastępowane - są traktowane jako część ciągu. Nie działają też znaki specjalne.
Ilustruje to przykład:
<?php $zmienna_a = "To jest zawartosc zmiennej a"; echo ("1. Tu zastosowanu cudzyslow! $zmienna_a"); echo nl2br("\n"); echo ('2. Tu zastowano apostrof! $zmienna_a'); ?>
Wykonanie w/w kodu zwróci taki wynik:
1. Tu zastosowanu cudzyslow! To jest zawartosc zmiennej a 2. Tu zastowano apostrof! $zmienna_a
Zastanawiasz się pewnie jaką rolę spełnia ten wiesz: echo nl2br("\n"), a konkretnie funkcja nl2br. - Mój WAMP bez tej funkcji nie rozumie znaków specjalnych. Oczywiście nie musiałem jej umieszczać w osobnym wierszu. Można było zrobić też tak:
<?php $zmienna_a = "To jest zawartosc zmiennej a"; echo nl2br("1. Tu zastosowanu cudzyslow! $zmienna_a\n"); echo nl2br('2. Tu zastowano apostrof! $zmienna_a'."\r"); ?>
Znaki specjalne w PHP
Sekwencja znaków | Znaczenie |
---|---|
\n | nowa linia |
\r | powrót karetki (CR) |
\t | tabulacja |
\\ | lewy ukośnik |
\" | cudzysłów |
\$ | znak dolara |
Przykład ilustrujący użycie znaków specjalnych w PHP.
<?php // Ciag pierwszy - ujety w cudzyslow $string = "To\r\njest\n\rciag\nznakow\r"; // To zadziała jak trzeba echo nl2br($string); // Ciag drugi - ujety w apostrof $string = 'To\r\njest\n\rciag\nznakow\r'; // To już nie echo nl2br($string); ?>
Wynik działania kodu:
// Ciąg pierwszy - ujęty w cudzysłów
To jest ciag znakow
// Ciąg drugi - ujęty w apostrof
To\r\njest\n\rciag\nznakow\r
Zobacz też
<htmlet>zobacz-tez</htmlet>