Stringi — praca z tekstem
🎯 Po tej lekcji połączysz i sformatujesz tekst, używając interpolacji, konkatenacji i wbudowanych funkcji stringów.
Tekst — czyli string — to jeden z najczęściej używanych typów danych w PHP. Wyświetlasz go na stronie, zapisujesz do bazy, wysyłasz w e-mailu. Czas poznać, jak z nim pracować.
Cudzysłowy: pojedyncze i podwójne
W PHP możesz zapisać string na dwa sposoby — i wybór ma znaczenie:
<?php
declare(strict_types=1);
$imie = 'Ola';
echo 'Cześć, $imie!'; // wynik: Cześć, $imie!
echo "Cześć, $imie!"; // wynik: Cześć, Ola!
- Pojedyncze cudzysłowy
'...'— string jest dosłowny. PHP nie analizuje, co jest w środku.$imiezostanie wypisane jako tekst$imie. - Podwójne cudzysłowy
"..."— PHP interpoluje zmienne: zamienia$imiena jej aktualną wartość.
Konkatenacja — łączenie stringów
Czasem chcesz złożyć tekst z kilku kawałków. Do tego służy operator . (kropka):
<?php
declare(strict_types=1);
$imie = 'Kuba';
$powitanie = 'Cześć, ' . $imie . '!';
echo $powitanie; // wynik: Cześć, Kuba!
Możesz też użyć operatora .=, żeby dopisać coś do istniejącej zmiennej:
<?php
declare(strict_types=1);
$wiadomosc = 'Twoje zamówienie ';
$wiadomosc .= 'zostało złożone.';
$wiadomosc .= ' Dziękujemy!';
echo $wiadomosc;
// wynik: Twoje zamówienie zostało złożone. Dziękujemy!
Funkcja strlen — długość stringa
strlen zwraca liczbę bajtów w stringu (dla tekstów bez polskich liter to równoznaczne z liczbą znaków):
<?php
declare(strict_types=1);
$haslo = 'Tajne123';
echo strlen($haslo); // wynik: 8
$pusto = '';
echo strlen($pusto); // wynik: 0
mb_strlen(). Na razie wystarczy Ci wiedzieć, że taka funkcja istnieje.Funkcja strtoupper — wielkie litery
strtoupper zamienia wszystkie litery na wielkie:
<?php
declare(strict_types=1);
$kategoria = 'promocje';
echo strtoupper($kategoria); // wynik: PROMOCJE
$imie = 'ola';
echo strtoupper($imie); // wynik: OLA
Jest też strtolower — zamienia na małe litery:
<?php
declare(strict_types=1);
$email = '[email protected]';
echo strtolower($email); // wynik: [email protected]
Funkcja str_replace — podmiana tekstu
str_replace zamienia wszystkie wystąpienia jednego fragmentu tekstu na inny:
<?php
declare(strict_types=1);
$opis = 'Sklep Oli sprzedaje jabłka i gruszki.';
$nowyOpis = str_replace('jabłka', 'truskawki', $opis);
echo $nowyOpis;
// wynik: Sklep Oli sprzedaje truskawki i gruszki.
Jeśli szukany tekst nie istnieje w stringu, str_replace zwraca oryginał bez zmian:
<?php
declare(strict_types=1);
$tekst = 'Cześć!';
echo str_replace('Hej', 'Witaj', $tekst);
// wynik: Cześć! ← bez zmian, bo 'Hej' nie ma w $tekst
Wszystko razem — przykład z życia
<?php
declare(strict_types=1);
$imieKlienta = 'anna';
$produktNazwa = 'kurtka zimowa';
$cena = 249.0;
// Formatujemy imię i nazwę produktu
$imieFormatowane = strtoupper($imieKlienta);
$produktFormatowany = ucfirst($produktNazwa); // ucfirst → pierwsza litera wielka
$potwierdzenie = "Droga $imieFormatowane, Twój produkt \"$produktFormatowany\" "
. "o wartości $cena PLN jest już w drodze!";
echo $potwierdzenie;
// wynik: Droga ANNA, Twój produkt "Kurtka zimowa" o wartości 249 PLN jest już w drodze!
Funkcje w tej lekcji
Sprawdź się
Jakie cudzysłowy umożliwiają interpolację zmiennych w PHP?
Interpolacja (wstawienie wartości zmiennej) działa tylko w podwójnych cudzysłowach. W pojedynczych $zmienna wyświetli się dosłownie jako $zmienna.
Jaki operator służy do łączenia (konkatenacji) stringów w PHP?
W PHP stringi łączy się operatorem . (kropka). Operator + jest do dodawania liczb.
Co zwróci strlen('PHP')?
strlen zwraca liczbę bajtów (znaków ASCII) w stringu. 'PHP' ma 3 znaki, więc zwróci 3.
Co wypisze echo strtoupper('ola')?
strtoupper zamienia wszystkie litery na wielkie. 'ola' staje się 'OLA'.
Ćwiczenie
Masz zmienną $imie z imieniem użytkownika (np. 'kuba'). Zbuduj powitanie: zamień imię na wielkie litery, oblicz ile ma znaków i wyświetl zdanie: 'Witaj, KUBA! Twoje imię ma 4 znaki.'
Pokaż rozwiązanie
<?php
declare(strict_types=1);
$imie = 'kuba';
$imieWielkie = strtoupper($imie);
$dlugosc = strlen($imie);
echo "Witaj, $imieWielkie! Twoje imię ma $dlugosc znaki.";
// wynik: Witaj, KUBA! Twoje imię ma 4 znaki.