Sprawdzanie, czy klucz istnieje
Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 45 z 71.
Podczas pracy z tablicami asocjacyjnymi często trzeba sprawdzić, czy określony klucz istnieje, zanim spróbuje się uzyskać dostęp do jego wartości. Próba uzyskania dostępu do nieistniejącego klucza może powodować błędy, dlatego PHP udostępnia funkcję array_key_exists(), która pozwala najpierw bezpiecznie to sprawdzić.
<?php
$person = [
"name" => "Alice",
"age" => 25
];
if (array_key_exists("name", $person)) {
echo "Name exists!";
}
if (array_key_exists("city", $person)) {
echo "City exists!";
} else {
echo "City not found";
}
?>Funkcja przyjmuje dwa argumenty: klucz, którego szukasz, oraz tablicę, w której należy go szukać. Zwraca true, jeśli klucz istnieje, a w przeciwnym razie false. Dzięki temu świetnie nadaje się do użycia w instrukcjach warunkowych.
To sprawdzenie jest szczególnie przydatne podczas pracy z danymi, które mogą być niekompletne, takimi jak dane wprowadzone przez użytkownika lub dane ze źródeł zewnętrznych, gdy nie możesz zagwarantować, że wszystkie oczekiwane klucze są obecne.
Wyzwanie
ŁatwyWczytaj wiersz wejściowy zawierający obiekt JSON reprezentujący dane użytkownika (np. {"username": "john_doe", "email": "john@example.com", "age": 28}).
Następnie wczytaj jeszcze dwa wejścia:
- Ciąg znaków
key1— pierwszy klucz do sprawdzenia - Ciąg znaków
key2— drugi klucz do sprawdzenia
Utwórz tablicę asocjacyjną z wejściowego obiektu JSON, a następnie:
- Sprawdź, czy
key1istnieje w tablicy. Jeśli tak, wypisz przypisaną do niego wartość. Jeśli nie, wypiszKey not found. - Sprawdź, czy
key2istnieje w tablicy. Jeśli tak, wypisz przypisaną do niego wartość. Jeśli nie, wypiszKey not found.
Wypisz każdy wynik w osobnym wierszu.
Przykład:
Jeśli wejściami są {"username": "john_doe", "email": "john@example.com", "age": 28}, username i phone, wynikiem powinno być:
john_doe
Key not foundJeśli wejściami są {"title": "Manager", "department": "Sales"}, salary i department, wynikiem powinno być:
Key not found
SalesSpróbuj swoich sił
<?php
// Odczytaj dane wejściowe JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// Przekształć JSON w tablicę asocjacyjną
$userData = (array)json_decode($jsonInput, true);
// TODO: Napisz swój kod poniżej
// Sprawdź, czy key1 istnieje, i wypisz wartość lub dokładny tekst z instrukcji
// Sprawdź, czy key2 istnieje, i wypisz wartość lub dokładny tekst z instrukcji
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównaniaRówność i tożsamośćOperatory logiczne — część 1Operatory logiczne — część 2Powtórka — prosta logika7Tablice, część 2 — asocjacyjne
Wprowadzenie do tablic asocjacyjnychDostęp do wartości za pomocą kluczaModyfikowanie wartości za pomocą kluczaDodawanie nowych par klucz-wartośćSprawdzanie, czy klucz istniejePodsumowanie — magazyn danych klucz-wartość2Zmienne i typy danych
LiczbyCiągi znaków i cudzysłowyWartości logiczneKonwencje nazewnictwaPodsumowanie — inicjalizacja zmiennychPuste zmienneŁączenie ciągów znakówPobieranie danych od użytkownikaKonwersja na inne typy5Instrukcje warunkowe
Instrukcja ifIf - elseOperator trójargumentowyOperator null coalescingInstrukcja switchPodsumowanie — podejmowanie decyzji3Podstawowe operatory
Operatory arytmetyczneOperator moduloOperator potęgowaniaPrzypisanie złożoneInkrementacja/dekrementacjaPriorytet operatorówPowtórka — proste obliczeniaOperatory łańcuchów znakówPoćwicz samodzielnie: Kompilator PHP online