سؤال Syntax PHP: ماذا يعني علامة الاستفهام والقولون؟ [مكرر

StackOverflow https://stackoverflow.com/questions/1276909

  •  16-09-2019
  •  | 
  •  

سؤال

ممكن مكررة:
Quick PHP Syntax سؤال

return $add_review ? FALSE : $arg;

ماذا يعني علامة الاستفهام والقولون؟

شكرًا

هل كانت مفيدة؟

المحلول

هذا هو php مشغل ثلاثي (المعروف أيضا باسم مشغل مشروط) - إذا قامت الأوائل الأولى بتقييم TRUE، فتقييم كمعامل ثان، أو تقييمها كمعامل ثالث.

فكر في الأمر باعتباره "إذا" بيان "يمكنك استخدامه في التعبيرات. يمكن أن تكون مفيدة للغاية في صنع مهام موجزة تعتمد على بعض الشرط، على سبيل المثال

$param = isset($_GET['param']) ? $_GET['param'] : 'default';

هناك أيضا نسخة مختارة من هذا (في PHP 5.3 فصاعدا). يمكنك ترك المعامل المتوسطة. سيقوم المشغل بتقييم كأول المعامل إذا كان صحيحا، والمعامل الثالث على خلاف ذلك. علي سبيل المثال:

$result = $x ?: 'default';

تجدر الإشارة إلى أن التعليمات البرمجية أعلاه عند استخدام IE $ _GET أو $ _Post المتغير سوف رمي إشعار فهرس غير محدد ومنع أننا نحتاج إلى استخدام إصدار أطول، مع isset أو مشغل alull الفاتح والتي يتم تقديمها في PHP7:

$param = $_GET['param'] ?? 'default';

نصائح أخرى

إنه الشكل الثلاثي للمشغل if غير ذلك. البيان أعلاه يقرأ أساسا مثل هذا:

if ($add_review) then {
    return FALSE; //$add_review evaluated as True
} else {
    return $arg //$add_review evaluated as False
}

انظر هنا لمزيد من التفاصيل حول المرجع القصير في PHP: http://www.addedbytes.com/php/phonary-conditionals/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top