Offset tablicy w PHP
Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Offset tablicy to indeks lub klucz, za pomocą którego odwołujemy się do konkretnego elementu tablicy w PHP.
Przykłady:
$tablica[0]; // offset liczbowy
$uczen['imie']; // offset tekstowy, czyli klucz asocjacyjny
Błąd: Trying to access array offset on value of type null
Komunikat:
Notice: Trying to access array offset on value of type null
oznacza, że program próbuje odczytać element tablicy, ale zmienna, z której ten element ma być pobrany, ma wartość null, a nie jest tablicą.
Przykład błędu:
$dane = null;
echo $dane['imie'];
PHP oczekuje tablicy, ale otrzymuje null, więc nie może odczytać elementu o kluczu imie.
Typowe przyczyny
- brak elementu w tablicy,
- zapytanie do bazy danych nie zwróciło rekordu,
- funkcja zwróciła
nullzamiast tablicy, - użyto błędnego klucza tablicy,
- zmienna nie została poprawnie zainicjalizowana.
Przykład częsty przy bazie danych:
$wiersz = mysqli_fetch_assoc($wynik);
echo $wiersz['nazwisko'];
Jeżeli zapytanie nie zwróci żadnego rekordu, $wiersz może mieć wartość null.
Jak zapobiegać?
Przed odwołaniem do elementu tablicy warto sprawdzić, czy zmienna jest tablicą i czy dany klucz istnieje:
if (is_array($dane) && isset($dane['imie'])) {
echo $dane['imie'];
}
Można też użyć operatora ??:
echo $dane['imie'] ?? 'Brak imienia';
W pytaniach egzaminacyjnych taki komunikat najczęściej wskazuje na próbę odwołania się do nieistniejącego elementu tablicy lub do offsetu w zmiennej, która nie jest tablicą.