الفرق بين المراجعتين ل"PHP/logical operators"
< PHP
اذهب إلى التنقل
اذهب إلى البحث
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}') |
ط (نقل عبد اللطيف ايمش صفحة PHP/Operators/logical إلى PHP/logical operators: إعادة هيكلة التوثيق) |
||
(مراجعة متوسطة واحدة بواسطة نفس المستخدم غير معروضة) | |||
سطر 29: | سطر 29: | ||
|<code>TRUE</code> إن كانت قيمة أحد المتغيرين <code>$a</code> و <code>$b</code> هي <code>TRUE</code>. | |<code>TRUE</code> إن كانت قيمة أحد المتغيرين <code>$a</code> و <code>$b</code> هي <code>TRUE</code>. | ||
|} | |} | ||
− | هناك صيغتان مختلفتان للعاملي "<code>and</code>" و "<code>or</code>" والسبب في ذلك يعود إلى أن كلّ صيغة تختلف عن الأخرى في الأولوية. (راجع [[PHP | + | هناك صيغتان مختلفتان للعاملي "<code>and</code>" و "<code>or</code>" والسبب في ذلك يعود إلى أن كلّ صيغة تختلف عن الأخرى في الأولوية. (راجع [[PHP/precedence operators|أولوية العوامل]]). |
المثال 1: توضيح العوامل المنطقية<syntaxhighlight lang="php"> | المثال 1: توضيح العوامل المنطقية<syntaxhighlight lang="php"> |
المراجعة الحالية بتاريخ 03:50، 4 أبريل 2018
المثال | الاسم | النتيجة |
---|---|---|
$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)