الفرق بين المراجعتين لصفحة: «PHP/empty»
لا ملخص تعديل |
مراجعة الصفحة |
||
سطر 2: | سطر 2: | ||
(PHP 4, PHP 5, PHP 7) | (PHP 4, PHP 5, PHP 7) | ||
تُحدِّد الدالة<code>empty()</code>إذا كان المتغير فارغًا. | تُحدِّد الدالة <code>empty()</code> إذا كان المتغير فارغًا. | ||
== الوصف == | == الوصف == | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
bool empty ( mixed $var ) | bool empty ( mixed $var ) | ||
</syntaxhighlight>الدالة<code>empty()</code> تتحقق من أنَّ المتغير يُعدّ فارغًا، ويعدّ المتغير فارغًا إذا كان غير موجودٍ أو يساوي القيمة<code>NULL</code> | </syntaxhighlight>الدالة <code>empty()</code> تتحقق من أنَّ المتغير يُعدّ فارغًا، ويعدّ المتغير فارغًا إذا كان غير موجودٍ أو يساوي القيمة <code>NULL</code>، الدالة <code>empty()</code> لا تولد تحذيرًا إذا لم يكن المتغير معرفًا. | ||
== المعاملات == | == المعاملات == | ||
=== <code>var</code> === | === <code>var</code> === | ||
المتغير الذي نريد اختبار قيمته إن كان فارغةً أم لا. | المتغير الذي نريد اختبار قيمته إن كان فارغةً أم لا. | ||
'''ملاحظة:''' | '''ملاحظة:''' | ||
سطر 19: | سطر 16: | ||
سابقاً في PHP 5.5، لم تكن تدعم الدالة<code>empty()</code>إلا المتغيرات فقط وتمرير أي شيًء آخر سوف يؤدي إلى خطأ من النوع parse error، وبعبارةًٍ آخرى، لن يعمل التعبير البرمجي الآتي مع الدالة<code>empty()</code>: <code>empty(trim($name))</code> لذا استخدم التعبير <code>trim($name) == false</code>. | سابقاً في PHP 5.5، لم تكن تدعم الدالة<code>empty()</code>إلا المتغيرات فقط وتمرير أي شيًء آخر سوف يؤدي إلى خطأ من النوع parse error، وبعبارةًٍ آخرى، لن يعمل التعبير البرمجي الآتي مع الدالة<code>empty()</code>: <code>empty(trim($name))</code> لذا استخدم التعبير <code>trim($name) == false</code>. | ||
لن يولَّد تحذيرٌ إذا لم يكن المتغير معرفًا. وهذا يعني أن الدالة <code>empty()</code>يمكن أن تكافئ التعبير البرمجي الآتي: <code>!isset($var) || $var == false</code> | لن يولَّد تحذيرٌ إذا لم يكن المتغير معرفًا. وهذا يعني أن الدالة <code>empty()</code>يمكن أن تكافئ التعبير البرمجي الآتي: <code>!isset($var) || $var == false</code>. | ||
== القيم المعادة == | == القيم المعادة == | ||
ستُعاد قيمة <code>false</code>إذا كان الوسيط (var) موجودًا ولهُ قيمةٌ أخرى غير NULL ولا تساوي الصفر ، ما عدا ذلك ستُعاد القيمة <code>true</code> | ستُعاد قيمة <code>false</code>إذا كان الوسيط (<code>var</code>) موجودًا ولهُ قيمةٌ أخرى غير <code>NULL</code> ولا تساوي الصفر ، ما عدا ذلك ستُعاد القيمة <code>true</code>. | ||
القيم التالية تعد قيمًا فارغةً: | |||
*<code>""</code> (سلسلة نصية فارغة) | *<code>""</code> (سلسلة نصية فارغة) | ||
سطر 38: | سطر 35: | ||
|- | |- | ||
|5.5.0 | |5.5.0 | ||
| | |أصبحت الدالة <code>empty()</code> تدعم التعابير البرمجية (expressions) بدل دعمها للمتغيرات فقط. | ||
|- | |- | ||
|5.4.0 | |5.4.0 | ||
| | |استعمال الدالة <code>empty()</code> مع فهارس غير نصية للسلاسل النصية سيعيد القيمة <code>true</code>. | ||
|} | |} | ||
سطر 50: | سطر 47: | ||
$var = 0; | $var = 0; | ||
// | // true، لأنَّ المتغير فارغ | ||
if (empty($var)) { | if (empty($var)) { | ||
echo '$var is either 0, empty, or not set at all'; | echo '$var is either 0, empty, or not set at all'; | ||
} | } | ||
// | // true، لأنَّ المتغير مضبوط | ||
if (isset($var)) { | if (isset($var)) { | ||
echo '$var is set even though it is empty'; | echo '$var is set even though it is empty'; | ||
سطر 61: | سطر 58: | ||
?> | ?> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
المثال 2: استخدام empty() مع فهارس للسلاسل النصية | المثال 2: استخدام <code>empty()</code> مع فهارس للسلاسل النصية | ||
تغيّر سلوك الدالة empty() في الإصدار 5.4 من اللغة عند تمرير فهارس نصية لمحاولة الوصول إلى مكونات السلسلة النصية: | تغيّر سلوك الدالة <code>empty()</code> في الإصدار 5.4 من اللغة عند تمرير فهارس نصية لمحاولة الوصول إلى مكونات السلسلة النصية: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
<?php | <?php | ||
سطر 95: | سطر 92: | ||
== ملاحظات == | == ملاحظات == | ||
لما كانت الدالة <code> | لما كانت الدالة <code>empty()</code> تعد بنيةً من بنى اللغة (language construct) وليست دالةً (function)، فلا يمكننا استخدام «<nowiki/>[[PHP/Functions/variable-functions|الدوال المتغيرة]]» (variable functions). | ||
عند استخدام <code> | عند استخدام <code>empty()</code> على خاصياتٍ تابعةٍ لكائنٍ لكننا لا نستطيع الوصول إليها، فسوف تستدعى الدالة زائدة التحميل <code>[[PHP/OOP/magic|__isset()]]</code> إن كانت معرفةً. | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* <code>[[PHP/Function/ | * <code>[[PHP/Function/isset|()isset]]</code>: تُحدِّد الدالة <code>isset()</code> ما إذا كان المتغير معرفًا وليس NULL. | ||
* <code>[[PHP/Function/unset|unset()]]</code>: إلغاء تعريف المتغير. | * <code>[[PHP/Function/unset|unset()]]</code>: إلغاء تعريف المتغير. | ||
* <code>[[PHP/Function/defined|defined()]]</code>: التحقق إن كان الثابت المعطى موجودًا. | * <code>[[PHP/Function/defined|defined()]]</code>: التحقق إن كان الثابت المعطى موجودًا. | ||
سطر 106: | سطر 103: | ||
* <code>[[PHP/Function/count|()count]]</code>: حساب عناصر المصفوفة. | * <code>[[PHP/Function/count|()count]]</code>: حساب عناصر المصفوفة. | ||
* <code>[[PHP/Function/strlen|()strlen]]</code>: إعادة طول سلسلةٍ نصيةٍ. | * <code>[[PHP/Function/strlen|()strlen]]</code>: إعادة طول سلسلةٍ نصيةٍ. | ||
== مصادر == | == مصادر == |
مراجعة 14:21، 14 مارس 2018
(PHP 4, PHP 5, PHP 7)
تُحدِّد الدالة empty()
إذا كان المتغير فارغًا.
الوصف
bool empty ( mixed $var )
الدالة empty()
تتحقق من أنَّ المتغير يُعدّ فارغًا، ويعدّ المتغير فارغًا إذا كان غير موجودٍ أو يساوي القيمة NULL
، الدالة empty()
لا تولد تحذيرًا إذا لم يكن المتغير معرفًا.
المعاملات
var
المتغير الذي نريد اختبار قيمته إن كان فارغةً أم لا.
ملاحظة:
سابقاً في PHP 5.5، لم تكن تدعم الدالةempty()
إلا المتغيرات فقط وتمرير أي شيًء آخر سوف يؤدي إلى خطأ من النوع parse error، وبعبارةًٍ آخرى، لن يعمل التعبير البرمجي الآتي مع الدالةempty()
: empty(trim($name))
لذا استخدم التعبير trim($name) == false
.
لن يولَّد تحذيرٌ إذا لم يكن المتغير معرفًا. وهذا يعني أن الدالة empty()
يمكن أن تكافئ التعبير البرمجي الآتي: !isset($var) || $var == false
.
القيم المعادة
ستُعاد قيمة false
إذا كان الوسيط (var
) موجودًا ولهُ قيمةٌ أخرى غير NULL
ولا تساوي الصفر ، ما عدا ذلك ستُعاد القيمة true
.
القيم التالية تعد قيمًا فارغةً:
""
(سلسلة نصية فارغة)0
(تمثيل العدد الصحيح 0)"0.0"
(تمثيل العدد العشري 0)NULL
FALSE
"()array"
(مصفوفة فارغة)
سجل التغييرات
الإصدار | الوصف |
---|---|
5.5.0 | أصبحت الدالة empty() تدعم التعابير البرمجية (expressions) بدل دعمها للمتغيرات فقط.
|
5.4.0 | استعمال الدالة empty() مع فهارس غير نصية للسلاسل النصية سيعيد القيمة true .
|
أمثلة
المثال 1: مثال بسيط يوضح الفرق بين الدالتين empty()
و isset()
<?php
$var = 0;
// true، لأنَّ المتغير فارغ
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
// true، لأنَّ المتغير مضبوط
if (isset($var)) {
echo '$var is set even though it is empty';
}
?>
المثال 2: استخدام empty()
مع فهارس للسلاسل النصية
تغيّر سلوك الدالة empty()
في الإصدار 5.4 من اللغة عند تمرير فهارس نصية لمحاولة الوصول إلى مكونات السلسلة النصية:
<?php
$expected_array_got_string = 'somestring';
var_dump(empty($expected_array_got_string['some_key']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>
ناتج المثال السابق في PHP 5.3:
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
أما ناتجه في PHP 5.4:
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
ملاحظات
لما كانت الدالة empty()
تعد بنيةً من بنى اللغة (language construct) وليست دالةً (function)، فلا يمكننا استخدام «الدوال المتغيرة» (variable functions).
عند استخدام empty()
على خاصياتٍ تابعةٍ لكائنٍ لكننا لا نستطيع الوصول إليها، فسوف تستدعى الدالة زائدة التحميل __isset()
إن كانت معرفةً.
انظر أيضًا
()isset
: تُحدِّد الدالةisset()
ما إذا كان المتغير معرفًا وليس NULL.unset()
: إلغاء تعريف المتغير.defined()
: التحقق إن كان الثابت المعطى موجودًا.array_key_exists()
: التحقق إن كان فهرسٌ ما موجودًا في المصفوفة.()count
: حساب عناصر المصفوفة.()strlen
: إعادة طول سلسلةٍ نصيةٍ.