Avatar ·

ماذا يفعل العامل ?: (Elvis) في PHP وكيف يعمل؟

مرحباً بالجميع! بدأت تعلم PHP مؤخراً، ووجدت عاملاً غريباً `?:`. في أحد المشاريع رأيت هذا الكود:\n\n```php\n$name = $_GET['name'] ?: 'guest';\n```\n\nأنا أفهم العامل الثلاثي العادي `? :`، لكن هنا يوجد علامة استفهام واحدة ونقطتان فقط. لا يوجد شرط قبل `?`. كيف يعمل هذا؟ ما هو "عامل Elvis"؟\n\nحاولت التجربة به محلياً:\n\n```php\n$value = 0;\n$result = $value ?: 'default value';\necho $result; // يطبع 'default value'\n```\n\nلماذا تعامل `0` على أنه false؟ وماذا يحدث إذا كان المتغير غير معرف؟ هل会产生 خطأ؟\n\nاشرح لي، من فضلك، كمبتدئ: في أي الحالات من الأفضل استخدام `?:` بدلاً من العامل الثلاثي العادي أو `??` (null coalescing)؟ متى يجب استخدامه، ومتى من الأفضل عدم استخدامه؟