في PHP، يمكننا تحقيق نفس الوظيفة المتمثلة في دالة array_some()
في جافا سكريبت باستخدام بعض التقنيات المتاحة. على الرغم من عدم وجود دالة مدمجة تسمح بذلك بشكل مباشر مثل دالة Array.prototype.some()
في جافا سكريبت، إلا أنه يمكننا كتابة وظيفة مخصصة لتحقيق نفس الغرض.
فيما يلي مثال يوضح كيفية تحقيق وظيفة مماثلة في PHP:
-
إزالة ميزة التعليقات العامة في GitHub30/03/2024
-
تقييم وتطبيق خيارات المسلسل في Python04/03/2024
phpfunction array_some($array, $callback) {
foreach ($array as $key => $value) {
if ($callback($value, $key, $array)) {
return true;
}
}
return false;
}
function isBiggerThan10($element) {
return $element > 10;
}
$array1 = [2, 5, 8, 1, 4];
$array2 = [12, 5, 8, 1, 4];
$result1 = array_some($array1, 'isBiggerThan10');
$result2 = array_some($array2, 'isBiggerThan10');
echo $result1 ? 'true' : 'false'; // false
echo $result2 ? 'true' : 'false'; // true
تُعرف الدالة array_some()
الخاصة بنا بأخذ مصفوفة ودالة استعلام كمدخلات. تقوم هذه الدالة بتطبيق الدالة المعطاة ($callback
) على كل عنصر في المصفوفة. إذا كانت الدالة المعطاة تعيد قيمة true
على الأقل لأحد العناصر، فإن الدالة array_some()
تعيد true
، وإلا فإنها تعيد false
.
الدالة isBiggerThan10()
هي الدالة المرشحة التي نقوم بتمريرها إلى array_some()
للتحقق مما إذا كان أحد العناصر في المصفوفة أكبر من 10 أم لا.
المزيد من المعلومات
بالطبع، دعنا نعمق في التفاصيل قليلاً.
في الكود المُعرَّف، يتم استخدام دالة array_some()
لتحقق مما إذا كان أي عنصر في المصفوفة يستوفي شرطًا معينًا، الذي يتم تمريره كوظيفة اختبار باستخدام استدعاء isBiggerThan10()
.
بدايةً، يتم تعريف دالة array_some()
، التي تأخذ المصفوفة المراد فحصها ودالة استدعاء لتطبيقها على كل عنصر في المصفوفة. يتم استخدام حلقة foreach
للانتقال عبر كل عنصر في المصفوفة. في كل تكرار، يتم استدعاء الدالة المرشحة ($callback
) وتمرير القيمة الحالية للعنصر بالإضافة إلى مفتاحه والمصفوفة نفسها إذا كان ذلك ضروريًا. إذا أعادت الدالة المرشحة true
على الأقل مرة واحدة، يتم إرجاع قيمة true
من الدالة array_some()
على الفور، مما يعني أن هناك عنصرًا واحدًا على الأقل يمر بالشرط المحدد. إذا لم يعود أي من الاستدعاءات true
، فإن الدالة تعود بقيمة false
.
تم تعريف دالة isBiggerThan10()
لتكون الدالة المرشحة. تأخذ هذه الدالة عنصرًا كمدخل وتقارنه بالقيمة 10، وتعود بالقيمة true
إذا كان العنصر أكبر من 10، و false
إذا كان أقل من أو يساوي 10.
بعد ذلك، تم تعريف مصفوفتين $array1
و$array2
، وتم استخدام دالة array_some()
مع الدالة المرشحة isBiggerThan10()
للتحقق من كل مصفوفة بشكل منفصل. ثم تم طباعة النتائج التي تشير إما إلى وجود عنصر يستوفي الشرط أو عدم وجوده.
يُظهر هذا المثال كيف يمكن تحقيق وظيفة مشابهة لدالة Array.prototype.some()
في جافا سكريبت في PHP باستخدام الوظائف المتاحة في اللغة، وكيف يمكن للمطورين تطبيق الأساليب المتاحة بديلًا عن الوظائف المدمجة عندما لا تكون متاحة مباشرة.