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>
Komentarze w PHP Działają //, /* … */ 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".

Porównanie z JS W JavaScript była 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}`.

Nawiasy klamrowe przy interpolacji Gdy zaraz po zmiennej ma być litera, użyj "{$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
Domyślnie pisz === Przy sprawdzaniu „czy to na pewno ta wartość” używaj ===. == 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ę

1. Który zapis wypisze wartość zmiennej w środku HTML?
2. Jak zaczyna się nazwa zmiennej w PHP?
3. Co zrobi zapis "Cześć $imie" (cudzysłów)?
4. Czym w PHP skleja się łańcuchy?
5. Wynik porównania 5 === "5" to:

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.

Lista „już umiem”