هل المصفوفة فارغة في PHP؟ نستعرض جميع طرق التحقق

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

كيف تتحقق مما إذا كانت المصفوفة فارغة في PHP؟ دليل كامل مع أمثلة

\n\n

مرحبًا، زميل المطور! إذا كنت قد كتبت كودًا بلغة PHP من قبل، فبالتأكيد واجهت موقفًا تحتاج فيه إلى معرفة: هل تحتوي المصفوفة على أي شيء، أم أنها فارغة مثل جيب طالب بعد الامتحانات. تبدو هذه المهمة بسيطة، لكنها تخفي بعض المزالق. خاصة للمبتدئين الذين قد يتسببون عن غير قصد في تعطل السكربت بسبب التحقق غير الصحيح.

\n\n

اليوم سنستعرض جميع الطرق الشائعة للتحقق من المصفوفة الفارغة في PHP، من الأبسط إلى الاحترافية. ستتعرف على الفرق بين empty() و isset()، ولماذا قد يكون count() خطيرًا، وكيفية كتابة كود مثالي. هيا بنا!

\n\n

لماذا هذا مهم؟ الأخطاء النموذجية للمبتدئين

\n\n

تخيل: تستقبل بيانات من المستخدم (مثل قائمة المنتجات في سلة التسوق). إذا كانت المصفوفة فارغة - يجب عرض رسالة "السلة فارغة". إذا لم تكن فارغة - عرض المنتجات. يبدو منطقًا بسيطًا. لكن إليك ما يكتبه المبتدئون غالبًا:

\n\n
// خطأ رقم 1: المقارنة مع false\nif ($cart == false) {\n    echo "السلة فارغة";\n}\n\n// خطأ رقم 2: التحويل الضمني للأنواع\nif ($cart) {\n    // سيتم تنفيذ هذا الكود إذا كانت المصفوفة غير فارغة\n}
\n\n

يبدو أنه يعمل؟ نعم، ولكن فقط في الحالات البسيطة. ماذا لو كانت المصفوفة تحتوي على مفاتيح، لكن جميع القيم null أو سلاسل فارغة؟ أو إذا كان المتغير غير معرف أصلًا؟ هنا تبدأ الأخطاء. لتجنبها، دعنا نستعرض التحقق من المصفوفة الفارغة في PHP بشكل حقيقي.

\n\n

الطريقة رقم 1: دالة empty() - الأكثر شيوعًا

\n\n

هذا أول ما يتبادر إلى الذهن. دالة empty() في PHP ترجع true إذا كان المتغير فارغًا. بالنسبة للمصفوفة، هذا يعني: المصفوفة غير موجودة، تساوي null، أو لا تحتوي على عناصر.

\n\n
<?php\n$emptyArray = [];\n$nonEmptyArray = ['apple', 'banana'];\n\nvar_dump(empty($emptyArray));    // true\nvar_dump(empty($nonEmptyArray)); // false\n?>
\n\n

الإيجابيات: قصيرة، قابلة للقراءة، تعمل مع المتغيرات غير المعرفة (لا تصدر تحذيرًا).

\n\n

السلبيات: تعتبر empty() أيضًا 0 و '0' و '' و false و null والكائن الفارغ SimpleXMLElement فارغة. إذا كانت مصفوفتك تحتوي على عنصر واحد بقيمة 0 - ستقول empty() إنها فارغة. وهذا ليس دائمًا ما تحتاجه.

\n\n
<?php\n$trickyArray = [0];\nvar_dump(empty($trickyArray)); // true! مع أن العنصر موجود\n?>
\n\n

الخلاصة: استخدم empty() فقط عندما تكون متأكدًا تمامًا من أن المصفوفة لن تحتوي على قيم "كاذبة" (0، سلسلة فارغة، إلخ). لمعظم المهام مع النماذج وإدخال المستخدم - خيار ممتاز.

\n\n

الطريقة رقم 2: دالة count() - العد الدقيق

\n\n

الطريقة الثانية من حيث الشهرة - التحقق من المصفوفة الفارغة باستخدام count(). ترجع هذه الدالة عدد العناصر في المصفوفة.

\n\n
<?php\n$array1 = [];\n$array2 = ['a' => 1, 'b' => 2];\n\nif (count($array1) === 0) {\n    echo "المصفوفة فارغة";\n}\n\nif (count($array2) > 0) {\n    echo "المصفوفة غير فارغة، فيها " . count($array2) . " عنصر";\n}\n?>
\n\n

الإيجابيات: نتيجة دقيقة تمامًا. إذا أعادت count() 0 - فلا توجد عناصر في المصفوفة. لا مفاجآت مع القيم الكاذبة.

\n\n

السلبيات: للمصفوفات الكبيرة جدًا، قد تكون count() أبطأ من empty() (على الرغم من أن الفرق عادةً ضئيل). أيضًا يجب الحذر: إذا كان المتغير غير معرف، ستُصدر count() تحذيرًا. استخدم التحقق isset() أو @count() (لكن كتم الأخطاء ممارسة سيئة).

\n\n

أفضل ممارسة: ادمجها مع isset():

\n\n
<?php\nif (isset($array) && count($array)                

المدونات

توصيات الكتب