التحقق من وجود المفتاح
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 45 من 71.
عند العمل مع المصفوفات الترابطية (associative arrays)، ستحتاج غالباً إلى التحقق مما إذا كان مفتاح معين موجوداً قبل محاولة الوصول إلى قيمته. يمكن أن تؤدي محاولة الوصول إلى مفتاح غير موجود إلى حدوث أخطاء، لذا توفر لغة PHP دالة array_key_exists() للتحقق بأمان أولاً.
<?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";
}
?>تأخذ الدالة وسيطين: المفتاح الذي تبحث عنه والمصفوفة التي سيتم البحث فيها. وتقوم بإرجاع true إذا كان المفتاح موجوداً، و false خلاف ذلك. وهذا يجعلها مثالية للاستخدام في الجمل الشرطية.
هذا التحقق مفيد بشكل خاص عند التعامل مع البيانات التي قد تكون غير مكتملة - مثل مدخلات المستخدم أو البيانات من مصادر خارجية - حيث لا يمكنك ضمان وجود جميع المفاتيح المتوقعة.
التحدي
سهلاقرأ سطراً من المدخلات يحتوي على كائن JSON يمثل بيانات المستخدم (على سبيل المثال، {"username": "john_doe", "email": "john@example.com", "age": 28}).
ثم اقرأ مدخلين إضافيين:
- سلسلة نصية
key1- المفتاح الأول للتحقق منه - سلسلة نصية
key2- المفتاح الثاني للتحقق منه
قم بإنشاء مصفوفة ترابطية (associative array) من مدخل JSON، ثم:
- تحقق مما إذا كان
key1موجوداً في المصفوفة. إذا كان موجوداً، اطبع القيمة المرتبطة به. وإذا لم يكن موجوداً، اطبعKey not found. - تحقق مما إذا كان
key2موجوداً في المصفوفة. إذا كان موجوداً، اطبع القيمة المرتبطة به. وإذا لم يكن موجوداً، اطبعKey not found.
اطبع كل نتيجة في سطر منفصل.
مثال:
إذا كانت المدخلات هي {"username": "john_doe", "email": "john@example.com", "age": 28} و username و phone، فيجب أن تكون المخرجات:
john_doe
Key not foundإذا كانت المدخلات هي {"title": "Manager", "department": "Sales"} و salary و department، فيجب أن تكون المخرجات:
Key not found
Salesورقة مرجعية
استخدم array_key_exists() للتحقق مما إذا كان مفتاح معين موجوداً في مصفوفة ترابطية قبل الوصول إليه:
<?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";
}
?>تأخذ الدالة وسيطين: المفتاح المراد البحث عنه والمصفوفة. وهي تعيد true إذا كان المفتاح موجوداً، و false بخلاف ذلك.
جرّب بنفسك
<?php
// قراءة مدخلات JSON
$jsonInput = trim(fgets(STDIN));
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// تحويل JSON إلى مصفوفة ترابطية
$userData = (array)json_decode($jsonInput, true);
// TODO: اكتب الكود الخاص بك أدناه
// تحقق مما إذا كان key1 موجوداً واطبع القيمة أو "Key not found"
// تحقق مما إذا كان key2 موجوداً واطبع القيمة أو "Key not found"
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط7المصفوفات الجزء الثاني - الترابطية
مقدمة في المصفوفات الترابطيةالوصول إلى القيم عبر المفتاحتعديل القيم عبر المفتاحإضافة أزواج (مفتاح-قيمة) جديدةالتحقق من وجود المفتاحملخص - مخزن بيانات (مفتاح-قيمة)2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص