Przedstawiona linia kodu, zapisana językiem PHP, ma za zadanie
define("OSOBA", "Anna Kowalska");
A. porównać dwa ciągi znaków
B. zdefiniować stałą o nazwie OSOBA
C. przypisać wartości do tablicy
D. ustalić wartość dla zmiennej $OSOBA
Pytanie z egzaminu CKE, styczeń 2021 (arkusz EE.09-SG-21.01).
Instrukcja define("OSOBA", "Anna Kowalska"); w PHP służy do utworzenia stałej o nazwie OSOBA i przypisania jej wartości tekstowej Anna Kowalska. Stała różni się od zmiennej tym, że po zdefiniowaniu nie powinna być zmieniana w dalszej części programu. Odwołujemy się do niej bez znaku dolara, czyli jako OSOBA, a nie $OSOBA. To ważny szczegół, bo w PHP znak $ jest zarezerwowany dla zmiennych. W praktyce stałe stosuje się np. do przechowywania wartości konfiguracyjnych: nazwy aplikacji, ścieżki katalogu, limitu wyników, trybu pracy systemu czy stałych tekstów używanych w wielu miejscach kodu. Moim zdaniem to jedna z tych rzeczy, które wyglądają prosto, ale pomagają pisać bardziej uporządkowany kod. Dobra praktyka mówi, aby nazwy stałych zapisywać wielkimi literami, często z podkreśleniami, np. MAX_LOGIN_ATTEMPTS. Dzięki temu od razu widać, że dana wartość jest stała, a nie zwykłą zmienną roboczą. W nowszym PHP często spotyka się też słowo kluczowe const, ale funkcja define() nadal jest poprawna i bardzo znana, szczególnie w starszym kodzie oraz plikach konfiguracyjnych.
W pokazanym fragmencie kodu nie zachodzi porównywanie napisów, bo do porównań w PHP używa się operatorów takich jak ==, ===, != albo funkcji przeznaczonych do pracy z tekstem, na przykład strcmp(). Funkcja define() nie sprawdza, czy dwa ciągi znaków są takie same, tylko rejestruje nazwę stałej i jej wartość. Łatwo się tu pomylić, bo w nawiasach rzeczywiście są dwa napisy, ale ich rola jest inna: pierwszy tekst to nazwa stałej, drugi to wartość, którą ta stała będzie przechowywać. Nie jest to też przypisanie wartości do tablicy. Tablice w PHP tworzy się zwykle przez array() albo krótszą składnię z nawiasami kwadratowymi, np. $osoby = ["Anna", "Jan"]. W tym kodzie nie ma indeksów, elementów tablicy ani zmiennej przechowującej strukturę danych. Nie należy również traktować tego jako ustawienia wartości zmiennej $OSOBA. Zmienna w PHP musi zaczynać się od znaku $, na przykład $OSOBA = "Anna Kowalska";. Tutaj nazwa OSOBA jest podana jako tekst do funkcji define(), a później stałej używa się bez dolara. Typowy błąd myślowy polega na tym, że ktoś widzi nazwę OSOBA i automatycznie dopisuje w głowie znak $, bo większość prostych przykładów PHP pokazuje właśnie zmienne. Warto jednak zapamiętać różnicę: zmienna może się zmieniać w czasie działania skryptu, natomiast stała ma reprezentować wartość ustaloną, taką bardziej konfiguracyjną. W codziennej pracy webowej to pomaga unikać przypadkowego nadpisania danych i sprawia, że kod jest czytelniejszy dla innych programistów, nawet jeśli temat wydaje się trochę szkolny.