العوامل المنطقية في PHP

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
المثال الاسم النتيجة
‎$a and $b And TRUE إن كانت قيمة كلا المتغيرين ‎$a و ‎$b هي TRUE.
‎$a or $b Or TRUE إن كانت قيمة أحد المتغيرين ‎$a و ‎ $bهي TRUE.
‎$a xor $b Xor TRUE إن كانت قيمة أحد المتغيرين ‎$a و ‎$b هي TRUE ولكن ليس كلاهما.
‎! $a Not TRUE إن كانت قيمة المتغير ‎$a ليست TRUE.
‎$a && $b And TRUE إن كانت قيمة كلا المتغيرين ‎$a و ‎$b هي TRUE.
‎$a || $b Or TRUE إن كانت قيمة أحد المتغيرين ‎$a و ‎$b هي TRUE.

هناك صيغتان مختلفتان للعاملي "and" و "or" والسبب في ذلك يعود إلى أن كلّ صيغة تختلف عن الأخرى في الأولوية. (راجع أولوية العوامل).

المثال 1: توضيح العوامل المنطقية

<?php

// --------------------
// لن تستدعى الدالة foo()
// لأن العوامل في هذه الأمثلة تُنشِئ دارةً قصيرةً
// short-circuit
$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// --------------------
// للعامل "||" أولوية أعلى من
// "or"

// تسند نتيجة التعبير
// (false || true)
// إلى المتغير $e
// تعمل مثل الشيفرة
// ($e = (false || true))

$e = false || true;

// تسند false
// إلى المتغير $f
// قبل أن تجرى المقارنة باستخدام العامل "or"
// تعمل مثل الشيفرة
// (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// للعامل "&&" أولوية أعلى من العامل
// "and"

// تُسند نتيجة التعبير 
// (true && false)
// إلى المتغير $g
// تعمل مثل الشيفرة
// ($g = (true && false))

$g = true && false;

// تُسند true
// إلى المتغير $h
//قبل إجراء المقارنة باستخدام المعامل
//"and"
// تعمل مثل الشيفرة
// (($h = true) and false)

$h = true and false;

var_dump($g, $h);
?>

تعطي الشيفرة السابقة المخرجات التالية:

bool(true)
bool(false)
bool(false)
bool(true)

مصادر