الفرق بين المراجعتين لصفحة: «PHP/boolean»
ط استبدال النص - 'PHP/Types/type-juggling' ب'PHP/type juggling' |
ط نقل عبد اللطيف ايمش صفحة PHP/Types/boolean إلى PHP/boolean: إعادة هيكلة التوثيق |
(لا فرق)
|
مراجعة 03:50، 4 أبريل 2018
القيم المنطقية (boolean) من أبسط الأنواع، فالتعبير المنطقي يُعبِّر عن صحّة تعبيرٍ ما، فإما أن تكون قيمة التعبير صحيحةً TRUE
أو خطأً FALSE
.
البنية العامة
لتحديد قيمة متغير منطقي، استخدام الثوابت TRUE
(صحيح) أو FALSE
(خطأ)، وكلاهما غير حساس لحالة الأحرف.
<?php
$foo = True; // إسناد قيمة منطقية إلى المتغير
?>
تُعيد المعاملات عادةً قيمًا منطقيةً التي تُمرَّر بدورها إلى بنى التحكم؛ ففي المثال الآتي استخدمنا المعامل ==
الذي يختبر مساواة قيمتين ويُعيد قيمةً منطقيةً:
<?php
// اختبار المساواة باستعمال المعامل == الذي يعيد قيمةً منطقيةً
if ($action == "show_version") {
echo "The version is 1.23";
}
// هذا ليس ضروريًا
if ($show_separators == TRUE) {
echo "<hr>\n";
}
// فالبنية الآتية لها نفس المعنى
if ($show_separators) {
echo "<hr>\n";
}
?>
تحويل القيم إلى قيم منطقية
لتحويل قيمة ما إلى قيمة منطقية، يمكنك استخدام «جبائر» (cast) التحويل (bool)
أو (boolean)
لكن هذا ليس ضروريًا في أغلب الحالات، لأن القيمة ستحوَّل تلقائيًا إذا كان المعامل أو الدالة أو البنية الشرطية تتطلب معاملًا منطقيًا.
يمكنك الإطلاع على صفحة التعامل مع الأنواع (Type Juggling) للمزيد من المعلومات.
تُعدّ هذه القيم FALSE
عند تحويلها إلى قيمة منطقية:
- الكلمة
FALSE
- العدد الصحيح
0
- العدد ذو الفاصلة العشرية (العائمة)
0.0
- سلسلة نصية فارغة أو التي تحتوي على
"0"
- مصفوفة لا تحتوي على أي عنصر
- النوع الخاص
NULL
(بما في ذلك المتغيرات التي لم تُعيَّن قيم لها) - كائنات
SimpleXML
التي أُنشِئَت من وسوم فارغة
أي قيمة أخرى ستُعدّ TRUE
بما في ذلك أيّة موارد (resource) و NAN
.
تحذير: ستُعدّ القيمة -1
على أنها TRUE
مثل أي رقم لا يساوي الصفر (سواء كان سالبًا أو موجبًا).
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>