Przejdź do głównej treści
  1. Strona główna
  2. Słownik
  3. INF.03
  4. Offset tablicy w PHP

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 null zamiast 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ą.