انتقل إلى محتوى الدرس

Symbol vs Word Logical Operators Trap فخ الأولوية بين && و and وبين || و or

أتقن معاملات المقارنة الصارمة والمرنة، ومعامل السفينة الفضائية، والمعاملات المنطقية، ودمج الفارغ، وجدول أولويات المعاملات في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

من أشهر الفخاخ البرمجية في PHP أن المعاملات اللفظية (and وor وxor) أولويتها أضعف من معامل الإسناد =، بينما المعاملات الرمزية (&& و||) أولويتها أقوى من =!

  • في العبارة $res = true && false;، يحسب PHP نتيجة true && false أولاً فيُسند false للمتغير $res.
  • أما في العبارة $res = true and false;، ينفذ PHP الإسناد ($res = true) أولاً لأن = أقوى من and، فيظل $res مساوياً لـ true!
  • استخدم دائماً المعاملات الرمزية && و|| وتجنب المعاملات اللفظية and وor.

بدون أقواس، تقوم العبارة $withWordAnd = true and false بإسناد true للمتغير أولاً قبل النظر إلى and false!

مخطط تدفق التنفيذ العملي لقسم فخ الأولوية بين && و and وبين || و or في لغة PHP
PHP
<?php
$withSymbols = true && false;
$withWordAnd = true and false;
$wrappedWord = (true and false);

var_dump($withSymbols);
var_dump($withWordAnd);
var_dump($wrappedWord);