Interpreter PHP zgłosi błąd składni i nie wykona kodu, jeżeli programista
A. będzie deklarował zmienne wewnątrz warunku.
B. będzie pisał kod bez wcięć.
C. pobierze wartość z formularza, w którym pole input nie było wypełnione.
D. nie zamknie nawiasem klamrowym bloku otwartego w instrukcji if.
Poprawna odpowiedź dotyczy niezamknięcia nawiasu klamrowego bloku otwartego w instrukcji if. W PHP nawiasy klamrowe wyznaczają zakres bloku kodu, czyli mówią interpreterowi, które instrukcje należą do danego warunku, pętli albo funkcji. Jeżeli zapiszesz na przykład: if ($wiek >= 18) { echo 'pełnoletni'; i nie dodasz zamykającego }, parser PHP nie potrafi jednoznacznie ustalić, gdzie kończy się blok. W efekcie pojawi się błąd składni, często komunikat w stylu syntax error, unexpected end of file albo unclosed {. Taki błąd jest wykrywany przed właściwym wykonaniem skryptu, więc plik nie zostanie normalnie uruchomiony. Z mojego doświadczenia to jeden z najczęstszych błędów przy pisaniu zagnieżdżonych if, pętli foreach i funkcji. Dobra praktyka branżowa jest prosta: od razu wpisywać parę nawiasów {}, używać edytora z kolorowaniem składni i automatycznym dopasowywaniem nawiasów, a przy większym kodzie stosować czytelne formatowanie zgodne np. z PSR-12. Wcięcia nie są wymagane przez interpreter, ale bardzo pomagają zobaczyć, czy blok jest domknięty. Czyli: brak klamry zamykającej to realny błąd składni, nie tylko brzydki styl.
W tym pytaniu łatwo pomylić błąd składni z błędem logicznym, ostrzeżeniem albo po prostu słabym stylem pisania kodu. PHP nie zgłosi błędu składni tylko dlatego, że użytkownik nie wypełnił pola input w formularzu. Taka sytuacja może dać pusty napis, brak wartości w tablicy $_POST albo komunikat typu warning/notice, jeśli programista odwoła się do nieistniejącego indeksu bez sprawdzenia isset() albo empty(). To jest problem obsługi danych wejściowych, walidacji formularza i bezpieczeństwa, ale sama składnia języka nadal jest poprawna. Podobnie brak wcięć nie zatrzyma interpretera. Kod napisany w jednej linii może być paskudny do czytania, moim zdaniem wręcz proszenie się o kłopoty, ale PHP patrzy głównie na tokeny, średniki, nawiasy i słowa kluczowe, a nie na estetykę układu. Wcięcia są standardem jakości, szczególnie według PSR-12, jednak nie są wymaganiem składniowym. Również przypisywanie albo tworzenie zmiennej wewnątrz warunku jest w PHP dozwolone, np. if ($x = pobierzWartosc()) { ... }. Trzeba tylko uważać, bo czasem ktoś przez pomyłkę wpisze = zamiast == lub === i kod działa inaczej niż planował. To błąd semantyczny lub logiczny, niekoniecznie składniowy. Prawdziwy błąd składni pojawia się wtedy, gdy struktura programu jest niekompletna, na przykład otwarty blok if nie ma zamykającej klamry. Wtedy parser nie jest w stanie zbudować poprawnej struktury kodu i skrypt się wysypie zanim sensownie ruszy.