⊗ppPmCdBOP 93 of 447 menu

Problem opcjonalności nawiasów klamrowych w warunkach w PHP

Mimo że PHP dopuszcza pokazane powyżej skróty z nawiasami klamrowymi, ja generalnie nie polecam tak robić, ponieważ jest to rozsadnik trudnych do wychwycenia błędów.

Załóżmy na przykład, że istnieje następujący kod:

<?php $test = 3; if ($test > 0) echo $test; ?>

Załóżmy teraz, że postanowiliśmy w przypadku, gdy warunek jest spełniony, zrobić jeszcze drugie echo:

<?php $test = 3; if ($test > 0) echo $test; echo '+++'; ?>

Jednakże bez nawiasów klamrowych wewnątrz warunku znajduje się tylko pierwsze wywołanie, czyli pierwsze wypisanie będzie uruchamiać się przy spełnionym warunku, a drugie - zawsze.

Faktycznie nasz kod jest równoważny takiemu:

<?php $test = 3; if ($test > 0) { echo $test; } echo '+++'; // ten wiersz znalazł się poza warunkiem ?>

A my chcielibyśmy taki kod:

<?php $test = 3; if ($test > 0) { echo $test; echo '+++'; // ten wiersz jest wewnątrz warunku } ?>

Właśnie dlatego zaleca się zawsze stosować rozmieszczenie nawiasów klamrowych, aby nie wpadać w tego rodzaju błędy.

Nie uruchamiając kodu, określ, co wyświetli się na ekranie:

<?php $num = 5; if ($num === 5) echo $num; echo '+++'; ?>

Nie uruchamiając kodu, określ, co wyświetli się na ekranie:

<?php $num = 0; if ($num === 5) echo $num; echo '+++'; ?>

Nie uruchamiając kodu, określ, co wyświetli się na ekranie:

<?php $num = 0; if ($num === 5) echo $num; echo '---'; echo '+++'; ?>
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć