تم الكشف عن مشغل Elvis (؟:) في PHP
في أعماق قاعدة تعليمات PHP المعقدة، قد تواجه مشغلًا غامضًا: ؟: عامل. يُطلق عليه اسم "عامل Elvis"، ربما يجعلك تتساءل، "ما هو الغرض منه؟"
]&&&] المشغل ?:، في جوهره، يقوم بتقييم المعامل الأيسر إذا كان المعامل الأيسر يعتبر "حقيقيًا"، و المعامل الصحيح وإلا. بمعنى آخر:foo ?: barfoo ?: 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