Klasa 2 · rozdział 2
Składnia PHP: echo, zmienne, stałe, operatory
Serwer już działa. Teraz zapisujesz pierwsze programy: mieszasz PHP z HTML, trzymasz dane w zmiennych i porównujesz wartości tak, jak w JavaScript — tylko inną składnią.
Po tym rozdziale powinieneś umieć
- osadzić blok
<?php ?>w dokumencie HTML; - wypisać tekst i wartości przez
echo(i rozpoznaćprint); - deklarować zmienne z
$, rozróżniać typy skalarne i rzutować; - zdefiniować stałą oraz interpolować zmienną w łańcuchu w cudzysłowach;
- stosować operatory i świadomie wybrać
===zamiast==.
1. Osadzanie PHP w HTML. echo i print
Interpreter wykonuje tylko to, co jest między <?php a ?>.
Reszta pliku to zwykły HTML, odsyłany bez zmian.
<!DOCTYPE html>
<html lang="pl">
<body>
<h1>Sklep</h1>
<?php
echo "<p>Witaj</p>";
?>
</body>
</html>
Możesz otworzyć i zamknąć PHP wielokrotnie w jednym pliku. Na początek trzymaj logikę w jednym bloku, a HTML wokół — tak łatwiej czytać.
echo
Wypisuje jeden lub więcej argumentów do odpowiedzi HTTP (czyli do HTML).
To Twój odpowiednik „pokaż na stronie”. Nie myl z console.log — to nie konsola DevTools.
echo "Ala";
echo " ma ", 2, " koty";
print
Prawie to samo: wypisuje jeden argument i zwraca wartość 1.
Na ćwiczeniach używaj echo. print wystarczy rozpoznać w cudzym kodzie.
Skrót <?= ?>
<?= $imie ?> oznacza <?php echo $imie; ?>.
Wygodny w środku HTML. Średnik przed ?> jest dobrym nawykiem.
<p>Cześć, <?= $imie ?></p>
//, /* … */ oraz # (jedna linia).
Komentarz HTML <!-- --> nie wyłącza PHP: serwer i tak wykona blok,
a użytkownik zobaczy wynik w źródle jako zwykły tekst.
2. Typy danych, zmienne, rzutowanie
Nazwa zmiennej zaczyna się od $, potem litera lub podkreślenie.
PHP nie wymaga let / const. Wielkość liter w nazwach ma znaczenie:
$Imie to inna zmienna niż $imie.
$imie = "Ania";
$wiek = 16;
$ocena = 4.5;
$zapisany = true;
Typy skalarne na start
| Typ | Przykład | Uwaga |
|---|---|---|
int |
10, -3 |
Liczba całkowita |
float |
3.14 |
Liczba z ułamkiem (dawniej też double) |
string |
"tekst", 'tekst' |
Łańcuch znaków |
bool |
true, false |
Bez cudzysłowu |
null |
null |
Brak wartości |
Jest też tablica (array) — osobny rozdział. Na razie wystarczy,
że var_dump czasem pokaże array.
var_dump i gettype
var_dump($x) wypisuje typ i wartość — to najbliższy odpowiednik „zobacz, co naprawdę siedzi w zmiennej”.
gettype($x) zwraca samą nazwę typu jako łańcuch.
var_dump($wiek);
echo gettype($imie);
Rzutowanie
PHP często sam konwertuje typy (np. "2" + 3 da 5). To wygodne i zdradliwe.
Rzutowanie jawne: (int), (float), (string), (bool).
$tekst = "12abc";
$liczba = (int) $tekst; // 12
$flag = (bool) 0; // false
Przy rzutowaniu na bool fałszem są m.in. 0, 0.0,
"", "0", null i pusta tablica. Wszystko inne jest true
— w tym niepusty łańcuch "false".
Number("12") i parseInt. Tu częściej zobaczysz
(int) albo intval(). Nawyk === zostaje: nie ufaj cichej konwersji.
3. Stałe. Interpolacja łańcuchów
Stała ma wartość, której nie zmieniasz w trakcie skryptu. Nazwy zwykle WIELKIMI LITERAMI,
bez $.
const VAT = 23;
define("SZKOLA", "TIP");
echo VAT;
echo SZKOLA;
const (PHP 5.3+) jest czytelniejszy na górze pliku.
define bywa w starszych przykładach i gdy nazwa ma powstać w trakcie działania programu.
Po ustawieniu stałej ponowny zapis tej samej nazwy jest błędem.
Cudzysłów a apostrof
| Zapis | Zachowanie |
|---|---|
"Cześć $imie" |
Interpolacja: w miejsce $imie wchodzi wartość. |
'Cześć $imie' |
Dosłownie znaki $imie — bez podstawienia. |
$imie = "Ania";
echo "Cześć, $imie"; // Cześć, Ania
echo 'Cześć, $imie'; // Cześć, $imie
echo "Cześć, " . $imie; // sklejanie operatorem kropki
Operator . (kropka) skleja łańcuchy. To nie jest kropka z obiektów JS.
W JS było + albo szablon `Cześć, ${imie}`.
"{$imie}k", żeby PHP nie szukało zmiennej
$imiek. Na start wystarczy spacja albo sklejanie kropką.
4. Operatory. == i ===
Arytmetyczne i przypisania
+ - * / % (reszta z dzielenia)
oraz ** (potęga). Skróty: +=, -=, .= (doklej do łańcucha).
$suma = 2 + 3;
$napis = "A";
$napis .= "B"; // "AB"
+ w PHP nie skleja tekstu — do tego jest kropka.
"2" + "3" da liczbę 5 (konwersja), a nie "23".
Porównanie i logika
< > <= >=
== != oraz ścisłe === !==.
Logiczne: && (i), || (lub), ! (nie).
Równość luźna i ścisła
== porównuje po sprowadzeniu do wspólnego typu.
=== wymaga tej samej wartości i tego samego typu.
W klasie 1 w JS obowiązywała ta sama zasada — tu ją utrwalasz.
var_dump(5 == "5"); // true — łańcuch zamieniony na liczbę
var_dump(5 === "5"); // false — int vs string
var_dump(0 == false); // true
var_dump(0 === false); // false
===.
== zostaw na świadomy wyjątek, gdy naprawdę chcesz konwersji.
Ćwiczenia do samodzielnego wykonania
Pliki w katalogu serwera, otwierane przez http://.
Ćwiczenie 1. Echo w HTML łatwe
Strona z nagłówkiem h1 w HTML oraz akapitem wypisanym przez echo
(np. data z date("Y-m-d") albo zwykły tekst).
Ćwiczenie 2. Zmienne i var_dump łatwe
Cztery zmienne: łańcuch, int, float, bool. Wypisz je echo oraz podejrzyj
var_dump. Zwróć uwagę, jak echo pokazuje true (jako 1)
i false (jako pustkę).
Ćwiczenie 3. Rzutowanie średnie
Weź łańcuch "15.7zł". Rzutuj na int i na float.
Wypisz obie wartości i krótki komentarz w kodzie, dlaczego wyniki się różnią.
Ćwiczenie 4. Stała i interpolacja średnie
Stała z nazwą szkoły, zmienna z imieniem. Jedno powitanie w cudzysłowach z interpolacją, drugie w apostrofach. Trzecie — sklejane kropką. Porównaj wynik w przeglądarce.
Ćwiczenie 5. Plus czy kropka średnie
Wypisz "2" + "3" oraz "2" . "3" (oba przez var_dump).
W komentarzu zapisz, który zapis skleja, a który dodaje.
Ćwiczenie 6. == kontra === trudne
Dla par: 0 i "0", 0 i false, "" i false
wypisz wynik == oraz ===. Na dole pliku krótki komentarz:
kiedy w zadaniu praktycznym wybrałbyś ===. Porównaj z zasadą z JavaScriptu.
Sprawdź się
Wymagania na ocenę
Ocena wyższa zawiera wymagania na oceny niższe. Ten rozdział obejmuje osadzanie PHP, typy,
zmienne, stałe i operatory — bez instrukcji if i pętli (kolejny rozdział).
| Ocena | Uczeń |
|---|---|
| 2 | Osadza blok <?php ?> i stosuje echo według wzoru. Deklaruje zmienną. |
| 3 | Stosuje typy skalarne i podstawowe operatory. Rozróżnia cudzysłów od apostrofu w prostym przykładzie. |
| 4 | Stosuje === oraz interpolację łańcuchów. Rzutuje wartość w zadaniu typowym. |
| 5 | Dobiera operator (kropka vs plus, == vs ===) do zadania. Testuje, co siedzi w zmiennej (var_dump). |
| 6 | Porównuje składnię PHP z JavaScriptem z klasy 1 (zmienna, sklejanie, równość ścisła) i uzasadnia zapis. |