Emad Saif نشر 4 أبريل 2022 أرسل تقرير نشر 4 أبريل 2022 كنت أقراء بعض أكواد PHP في أحد السكريبتات مفتوحة المصدر للتعلم منه، ولكن وجد كود يستعمل فيه المعامل :? لتغير قيمة متغير: $comments = $comments ?: do_something(); أنا أعلم ما هو المعامل الثلاثي ternary operator وكيف يتم إستعماله، ولكن كيف يتم إستعمال المعامل :? وما فائدته في PHP؟ 2 اقتباس
1 Hassan Hedr نشر 4 أبريل 2022 أرسل تقرير نشر 4 أبريل 2022 المعامل :? يدعى Elvis Operator وهو اختصار للمعامل الثلاثي Ternary Operator عند حالة خاصة وهي أن القيمة الشرطية وأول قيمة ضمن المعامل هي المتغير نفسه المثال التالي باستخدام المعامل الثلاثي Ternary Operator: $x ? $x : $y; يمكن كتابته نفسه بالمعامل Elvis Operator كالتالي: $x ?: $y; 1 اقتباس
2 سامح أشرف نشر 4 أبريل 2022 أرسل تقرير نشر 4 أبريل 2022 يسمى هذا المعامل بمعامل إلڤيس Elvis Operator ويستعمل مثل المعامل الثلاثي Ternary Operator في حالة واحدة إذا كان الشرط هو ما يجب إستناده إلى المتغير، فعلى سبيل المثال إذا أردنا التأكد من أن قيمة معينة لا تساوي صفر وإسنادها في هذه الحالة إلى متغير ما، أو إسناد قيمة مختلفة إذا كانت تساوي صفر: <?php $value = 5; $var = $value ?: 6; echo $var; // 5 بينما إذا كانت قيمة المتغير $value من نوع falsy (صفر على سبيل المثال) فسوف يتم إسناد القيمة الأخرى (القيمة الإفتراضية): <?php $value = 0; $var = $value ?: 6; echo $var; // 6 يمكن إعتبار معامل إلڤيس Elvis Operator كإختصار لجملة if else الشرطية كذلك: <?php $value = 5; if($value) { $var = $value; } else { $var = 6; } echo $var; // 5 تم شرح كلًا من المعامل الثلاثي Ternary Operator ومعامل إلفيس Elvis Operator في هذه المقالة هنا: إذا أردت إستخدام معامل إلفيس Elvis Operator في التأكد من أن قيمة متغير ما لا تساوي null فيمكنك إستخدام معامل التجميع Null Coalesce Operator بداية من PHP 7 ، حيث يقوم هذا المعامل بالتأكد من أن قيمة معينة لا تساوي null: <?php $value = null; $var = $value ?? 6; echo $var; // 6 1 اقتباس
السؤال
Emad Saif
كنت أقراء بعض أكواد PHP في أحد السكريبتات مفتوحة المصدر للتعلم منه، ولكن وجد كود يستعمل فيه المعامل :? لتغير قيمة متغير:
أنا أعلم ما هو المعامل الثلاثي ternary operator وكيف يتم إستعماله، ولكن كيف يتم إستعمال المعامل :? وما فائدته في PHP؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.