العوامل المنطقية في PHP
< PHP
المثال | الاسم | النتيجة |
---|---|---|
$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)