☰ خطة العام · تكنولوجيا المعلومات والاتصالات (بالعربية)

بوابة OR في ⁦VB.NET⁩ وPHP

الأسبوع 12 · الوحدة ٢ الموضوعان الخامس والسادس: محاكاة بوابة OR بلغة VB.NET وبلغة PHP · 3 دروس
3

بوابة OR في صفحة ويب: اختبار ||

ICT Secondary 3 Term 1, Unit 2, Topics 5–6: pp. 48–64
الهدفاكتب اختبار OR في PHP بالعامل ||، وتتبّع الصفحة، واعثر على خطأ صفحة بُدِّل فيها && و||.
كلمات جديدة
|| · عامل OR في PHP للشروط: صحيح حين يكون أحد الطرفين صحيحًا على الأقل| · عامل مختلف يعمل على بتات الأعداد الصحيحة، فمثلًا ⁦6 | 3⁩ يساوي 7العامل المبدَّل ⁦(swapped operator)⁩ · خطأ كتابة || حيث يلزم && أو العكسالصفوف المختلفة · الاختيارات التي تعطي فيها نسختان من القاعدة نتيجتين مختلفتين
الشرح

صفحة OR هي صفحة الأسبوع العاشر مع تغيير واحد. النموذج نفسه: قائمتان منسدلتان list1 وlist2 وزر Apply. وكود PHP هو نفسه أيضًا، والجديد الاختبار داخل if فقط: ⁦$choice1 == "on" || $choice2 == "on"⁩. والعلامة || هي OR في PHP للشروط. وهي صحيحة حين يكون أحد الطرفين صحيحًا على الأقل، كما في جدول الحقيقة في الأسبوع الحادي عشر. أما | المفردة فعامل آخر: يعمل على بتات الأعداد الصحيحة، فيعطي ⁦6 | 3⁩ القيمة 7. وللشروط اكتب ||. ولا يطبع الكتاب كودًا لهذه الصفحة، فالدالة أدناه نسختنا الخاصة، مع فحوص الأسبوع العاشر الأكثر أمانًا. فكّر الآن في الأخطاء. إذا كتب أحدهم && في صفحة OR، أو || في صفحة AND، كان المصباح صحيحًا مع off وoff ومع on وon، لكنه خاطئ مع الاختيارين اللذين تختلف فيهما القائمتان. وهذان الصفان يدلانك على النسخة التي أمامك.

صفحة ANDصفحة OR
الاختبار⁦$a == "on" && $b == "on"⁩⁦$a == "on" || $b == "on"⁩
يضيء معon وon فقطكل اختيار إلا off وoff
يُطفأ معثلاثة اختياراتoff وoff فقط
أمثلة محلولة
Php
1function lamp(array $post): string {
2    $allowed = ["on", "off"];
3    $first = "off";
4    $second = "off";
5    $state = "unlit";
6    if (isset($post['apply'])) {
7        $first = in_array($post['list1'] ?? "", $allowed, true) ? $post['list1'] : "off";
8        $second = in_array($post['list2'] ?? "", $allowed, true) ? $post['list2'] : "off";
9        $state = ($first === "on" || $second === "on") ? "lit" : "unlit";
10    }
11    return "$first $second $state";
12}
13
14echo lamp([]), "\n";
15echo lamp(['apply' => 'Apply', 'list1' => 'off', 'list2' => 'on']), "\n";
16echo lamp(['apply' => 'Apply', 'list1' => 'off', 'list2' => 'off']), "\n";
17echo lamp(['apply' => 'Apply', 'list1' => 'maybe', 'list2' => 'on']);
Output
off off unlit
off on lit
off off unlit
off on lit
صفحة OR على شكل دالة، مع فحوص الأسبوع العاشر. وأسطر الناتج للزيارة الأولى، ولـ off وon، ولـ off وoff، وللنص maybe مع on.
Php
1var_dump(true || false);
2var_dump(false || false);
3var_dump(1 | 0);
4var_dump(6 | 3);
Output
bool(true)
bool(false)
int(1)
int(7)
العلامتان || و| وحدهما.
list1list2اختبار ANDاختبار OR
offoffمطفأمطفأ
offonمطفأمضاء
onoffمطفأمضاء
ononمضاءمضاء
خطأ العامل المبدَّل. الصفان اللذان تختلف فيهما القائمتان هما وحدهما اللذان يفرّقان بين النسختين.
نشاط الفصل

صفحة يُراد لها أن تكون صفحة OR لكن اختبارها ⁦$choice1 == "on" && $choice2 == "on"⁩. مع أي الاختيارات الأربعة تعرض المصباح خطأً، وماذا تعرض؟ ثم اكتب الاختبار الصحيح.

تدرّب
1
ماذا تعني || في PHP؟
2
أي سطر يختلف بين صفحة AND وصفحة OR؟
3
كم يعطي ⁦6 | 3⁩ ولماذا؟
4
تستلم صفحة OR القيمتين ⁦list1 = off⁩ و⁦list2 = on⁩. ماذا يعرض المصباح؟