Ciągi znaków w PHP

Z ToProste
Skocz do: nawigacji, wyszukiwania

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>