"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هو مشغل Elvis (؟:) وكيف يعمل في PHP؟

ما هو مشغل Elvis (؟:) وكيف يعمل في PHP؟

تم النشر بتاريخ 2024-11-21
تصفح:277

What is the Elvis Operator (?:) and How Does it Work in PHP?

تم الكشف عن مشغل Elvis (؟:) في PHP

في أعماق قاعدة تعليمات PHP المعقدة، قد تواجه مشغلًا غامضًا: ؟: عامل. يُطلق عليه اسم "عامل Elvis"، ربما يجعلك تتساءل، "ما هو الغرض منه؟"

]&&&] المشغل ?:، في جوهره، يقوم بتقييم المعامل الأيسر إذا كان المعامل الأيسر يعتبر "حقيقيًا"، و المعامل الصحيح وإلا. بمعنى آخر:

foo ?: bar
foo ?: bar
يعادل تقريبًا عامل التشغيل الثلاثي:

foo ? foo : شريط
foo ?: bar
أو في عبارة if-else التقليدية:

if (foo) { فو = فو؛ } آخر { فو = شريط؛
foo ?: bar
ومع ذلك، على عكس المشغل الثلاثي، يقوم المشغل ?: بتقييم المعامل الأيسر مرة واحدة فقط، مما يعزز الكفاءة.

مثال للاستخدام

أحد الأشياء الشائعة حالة الاستخدام مخصصة للتحقق الذاتي، كما هو موضح في مقتطف الكود:

$items = $items ?: $this->_handle->result('next', $this->_result, $this);
foo ?: bar
هنا، يتم تعيين نتيجة $this->_handle->result() إلى $items إذا $items فارغة أو خاطئة، بينما يتم ترك $items دون تغيير.

أمثلة إضافية

هنا فيما يلي بعض الأمثلة الإضافية لإلقاء الضوء على السلوك:

var_dump(5 ?: 0); // 5 var_dump(false ?: 0); // 0 var_dump(null ?: 'foo'); // "فو" var_dump(true ?: 123); // حقيقي var_dump('rock' ?: 'roll'); // 'صخر' var_dump('' ?: 'roll'); // 'لفافة' var_dump('0' ?: 'roll'); // 'لفافة' var_dump('42' ?: 'roll'); // '42'
foo ?: bar
هل يجب أن تواجه مشغل ?: في المستقبل، تذكر أن هدفه هو توفير طريقة موجزة للتقييم والتعيين بناءً على الصدق، مما يجعل التعليمات البرمجية الخاصة بك أكثر كفاءة وقابلة للقراءة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3