Różnica miedzy $_POST a $_POST["action"]

0

Oczywiście wiem, żę $_POST jest superglobalną zmienną tablicową. Nie rozumiem jednak, dlaczego w skrypcie należy stosować coś takiego:
if (($_POST) && ($_POST["action"]=="sub")) ...? Oczywiście rozumiem: jeśli istnieje już tablica. "sub" jest to wartość atrybutu VALUE znacznika input type="radio".
Po co jednak dodatkowo pisac $_POST["action"]=="sub" ?

Uogólniając...czym różni się $_POST od $_POST["jakiś_index"]. Czy mam w takim układzie do czynienia z podtablicami? No właśnie tutaj mam wątpliwości.

0

Otóż if ($_POST) sprawdza, czy w ogóle mamy jakiekolwiek dane w tej tablicy. Jeżeli $_POST nie istniałoby, to próba odwołania się do elemetu nieistniejącej tablicy $_POST['element'] spowoduje wyświetlenie ostrzeżenia... w teorii.
W praktyce w PHP 99% ludzi pisze brzydko, a takie ostrzeżenia ukrywane są w konfiguracji. PHP jest językiem, który "domyśla" się wielu rzeczy i często próbuje podejmować działania za programistę - wiele osób z tego chętnie korzysta, na ogół kończy się to dziurami w kodzie (przedstawiony problem nie jest w żadnym wypadku dziurą).

PS. Na pogrubiono masz zwięźle o co chodzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1