شرح صفوف ومحتوى الفقرة
من أشهر الفخاخ البرمجية في 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!
PHP
<?php
$withSymbols = true && false;
$withWordAnd = true and false;
$wrappedWord = (true and false);
var_dump($withSymbols);
var_dump($withWordAnd);
var_dump($wrappedWord);