Check if Key Exists
Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası — ders 45 / 71.
İlişkisel dizilerle (associative arrays) çalışırken, değerine erişmeye çalışmadan önce belirli bir anahtarın var olup olmadığını sık sık kontrol etmeniz gerekir. Var olmayan bir anahtara erişmeye çalışmak hatalara neden olabilir, bu nedenle PHP güvenli bir şekilde önce kontrol etmeniz için array_key_exists() fonksiyonunu sunar.
<?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";
}
?>İşlev iki argüman alır: aradığınız key ve içinde arama yapılacak array. Anahtar varsa true, aksi takdirde false döndürür. Bu da onu koşullu ifadelerde kullanım için mükemmel kılar.
Bu kontrol, özellikle kullanıcı girdisi veya harici kaynaklardan gelen veriler gibi tüm beklenen anahtarların mevcut olduğunu garanti edemediğiniz, eksik olabilecek verilerle çalışırken oldukça kullanışlıdır.
Görev
KolayKullanıcı verilerini temsil eden bir JSON nesnesi içeren bir girdi satırını okuyun (örneğin, {"username": "john_doe", "email": "john@example.com", "age": 28}).
Ardından iki girdi daha okuyun:
- Bir metin
key1- kontrol edilecek ilk anahtar - Bir metin
key2- kontrol edilecek ikinci anahtar
JSON girdisinden ilişkisel bir dizi (associative array) oluşturun, ardından:
- Dizide
key1anahtarının bulunup bulunmadığını kontrol edin (Check). Eğer varsa, onunla ilişkili değeri yazdırın. Yoksa,Key not foundyazdırın. - Dizide
key2anahtarının bulunup bulunmadığını kontrol edin. Eğer varsa, onunla ilişkili değeri yazdırın. Yoksa,Key not foundyazdırın.
Her bir sonucu ayrı bir satıra yazdırın.
Örnek:
Girdiler {"username": "john_doe", "email": "john@example.com", "age": 28}, username ve phone ise çıktı şöyle olmalıdır:
john_doe
Key not foundGirdiler {"title": "Manager", "department": "Sales"}, salary ve department ise çıktı şöyle olmalıdır:
Key not found
SalesKendin dene
<?php
// JSON girişini oku
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// JSON'u ilişkisel diziye dönüştür
$userData = (array)json_decode($jsonInput, true);
// TODO: Kodunuzu aşağıya yazın
// key1'in var olup olmadığını kontrol et ve değeri veya talimatlardaki tam metni yazdır
// key2'nin var olup olmadığını kontrol et ve değeri veya talimatlardaki tam metni yazdır
?>Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators