Dany jest fragment kodu PHP z zadeklarowaną zmienną typu tablicowego
$imiona = array ('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra'); echo $imiona[2];W wyniku wykonania kodu zostanie wypisane imię
A. Tomasz
B. Anna
C. Aleksandra
D. Krzysztof
Pytanie z egzaminu CKE, wrzesień 2015 (arkusz E.14-X-15.08).
W tym kodzie kluczowe jest to, że tablice indeksowane numerycznie w PHP domyślnie zaczynają się od indeksu 0, a nie od 1. Elementy tablicy imiona są więc ułożone tak: imiona[0] to Anna, imiona[1] to Tomasz, imiona[2] to Krzysztof, a imiona[3] to Aleksandra. Instrukcja echo wypisuje wartość znajdującą się pod indeksem 2, dlatego wynikiem działania programu będzie Krzysztof. To bardzo ważna zasada, bo występuje nie tylko w PHP, ale też w wielu innych językach, np. JavaScript, C, Java czy Python. Z mojego doświadczenia wynika, że pomyłki z indeksami tablic są jednymi z najczęstszych błędów na początku nauki programowania. W praktycznych projektach webowych tablice wykorzystuje się np. do przechowywania list produktów, nazw użytkowników, wyników z formularza albo rekordów pobranych z bazy danych. Dobrą praktyką jest świadome sprawdzanie indeksów, zwłaszcza gdy dane pochodzą z zewnątrz, bo odwołanie do nieistniejącego elementu może spowodować ostrzeżenie lub błąd logiczny w aplikacji.
Najczęstszy błąd w tym zadaniu polega na liczeniu elementów tablicy tak, jak liczymy rzeczy w codziennym życiu, czyli od 1. W programowaniu, szczególnie w PHP przy zwykłych tablicach indeksowanych numerycznie, pierwszy element ma indeks 0. Dlatego Anna nie znajduje się pod indeksem 1, tylko pod indeksem 0. Tomasz ma indeks 1, a nie 2, więc wybranie Tomasza wynika zwykle z przesunięcia całej numeracji o jeden. Podobnie Aleksandra jest ostatnim elementem tablicy, ale jej indeks to 3, ponieważ przed nią są już trzy elementy o indeksach 0, 1 i 2. Myślenie, że zapis imiona[2] oznacza drugi element tablicy, jest bardzo typową pułapką na starcie nauki PHP. W rzeczywistości oznacza on element o indeksie 2, czyli trzeci element w kolejności. Moim zdaniem warto sobie zawsze rozpisać małą tabelkę indeks → wartość, szczególnie gdy tablica jest krótka i zadanie dotyczy podstaw. W aplikacjach webowych takie nieporozumienie może prowadzić do wyświetlenia niewłaściwego użytkownika, produktu albo opcji w formularzu. Dobra praktyka to pilnowanie różnicy między pozycją człowieka w liście a indeksem technicznym używanym przez język programowania.