CZĘŚĆ 02
Łączenie tekstu i liczby
PPrezentacja dla nauczyciela
Łączenie tekstu kropką ., obliczenia arytmetyczne, reszta z dzielenia i formatowanie kwot przez number_format(). Poznaj różnicę między dodawaniem a sklejaniem.
Sklejanie tekstu kropką
Kropka . łączy napisy i dokleja do nich liczby. Wynik jest zawsze tekstem, więc 'Razem: ' . 5 . ' zł' da na stronie jedno zdanie, a nie trzy osobne wartości.
Uważaj na kolejność: PHP liczy od lewej do prawej, więc '2 + 2 = ' . 2 + 2 da 2 + 2 = 22? Nie — da 4, bo najpierw powstanie tekst, a potem dodawanie potraktuje go jak liczbę. Dla pewności liczby liczymy w nawiasach: '2 + 2 = ' . (2 + 2).
Sklejanie kropką jest bezpieczne i przewidywalne: nie zależy od ustawień serwera ani od tego, czy w napisie są polskie znaki.
$imie = 'Ola';
$punkty = 18;
echo 'Uczen: ' . $imie;
echo '<p>Punkty: ' . $punkty . ' z 20</p>';
echo '<p>Srednia: ' . ($punkty / 20 * 100) . '%</p>';
Cudzysłowy i wstawianie zmiennych
W cudzysłowach podwójnych PHP wstawia wartość zmiennej wprost do napisu: "Witaj, $imie!". W apostrofach to się nie dzieje — 'Witaj, $imie!' wypisze dosłownie znak dolara i nazwę zmiennej.
Gdy za zmienną stoi tekst (np. $imie i litera), PHP może pomylić nazwę. Wtedy pomaga nawias klamrowy: "Witaj, {$imie}ka!". Apostrofy są szybsze i pewniejsze, gdy w zdaniu nie ma zmiennych.
Wybór cudzysłowu wpływa też na znaki specjalne: w podwójnych \n oznacza nową linię, a w pojedynczych jest zwykłym tekstem.
$imie = 'Ala';
$wiek = 17;
echo "Uczen: $imie, wiek: $wiek lat";
echo '<p>To samo w apostrofach: $imie</p>';
echo "<p>Sklejone: " . $imie . ' ma ' . $wiek . ' lat</p>';
Liczby, konwersje i zaokrąglanie
Dane z formularza zawsze przychodzą jako tekst, nawet gdy pole nazywa się cena. Do liczenia trzeba je najpierw zamienić: intval($_GET['sztuki']) da liczbę całkowitą, a floatval() liczbę zmiennoprzecinkową.
Do formatowania wyniku służy number_format($kwota, 2, ',', ' ') — dwa miejsca po przecinku, polski separator i spacja w tysiącach. Zaokrąglenie robi round(), a resztę z dzielenia %.
Dzielenie zawsze zwraca liczbę zmiennoprzecinkową, więc 10 / 4 to 2.5, a nie 2. Gdy potrzebna jest część całkowita, użyj intdiv(10, 4).
$sztuki = intval('3');
$cena = floatval('19.99');
$razem = $sztuki * $cena;
echo 'Razem: ' . number_format($razem, 2, ',', ' ') . ' zl';
echo '<p>Polowa: ' . round($razem / 2, 2) . '</p>';
echo '<p>Reszta z dzielenia: ' . ($sztuki % 2) . '</p>';
Ćwiczenia
- 1Dane szkolne w jednym zdaniutrzy zmienne sklejone w zdanieZadanie i podpowiedzi →
- 2Zamień centymetry na metrydzielenie z przecinkiemZadanie i podpowiedzi →
- 3Suma w nawiasie obok tekstunawias przy działaniu w tekścieZadanie i podpowiedzi →
- 4Dodawanie czy łączenie?kropka a plus w łączeniuZadanie i podpowiedzi →
- 5Cztery podstawowe działaniacztery działania na dwóch liczbachZadanie i podpowiedzi →
- 6Reszta z dzieleniaoperator moduloZadanie i podpowiedzi →
- 7Oblicz rabatprocent z kwotyZadanie i podpowiedzi →
- 8Operator przypisania skróconegoskrócone przypisanie +=Zadanie i podpowiedzi →
- 9Obliczenia na kilku liczbachsuma, iloczyn i średniaZadanie i podpowiedzi →
- 10Zaokrąglij wynikround i format liczbyZadanie i podpowiedzi →
- 11Średnia ocen z jednym miejscem po przecinkuśrednia zaokrąglona do jednego miejscaZadanie i podpowiedzi →
- 12Kwota płatności polską zapisemformatowanie kwotyZadanie i podpowiedzi →
- 13Karta produktu z wartością do zapłatycena razy ilość i podatekZadanie i podpowiedzi →
- 14Paragon z trzech pozycjitrzy pozycje i suma na paragonieZadanie i podpowiedzi →
- 15Kalkulator faktury: netto, VAT i bruttonetto, VAT i brutto z jednej kwotyZadanie i podpowiedzi →
- 16Łączenie tekstu i liczbykonkatenacja i obliczeniaZadanie i podpowiedzi →