كيف تتحقق من أن المصفوفة فارغة في PHP؟ خمس طرق يجب أن يعرفها كل مطور
\n\nهل سبق لك أن كتبت سكربت PHP لمعالجة مجموعة من البيانات، وفجأة واجهت خطأ "Undefined offset" أو "Trying to access array offset on null"؟ موقف مألوف، أليس كذلك؟ التحقق من أن المصفوفة فارغة هي إحدى العمليات الأساسية ولكنها بالغة الأهمية، والتي يقوم بها العديد من المطورين المبتدئين بطريقة خاطئة. في هذا المقال، سنشرح كيف تتحقق من أن المصفوفة فارغة في PHP، وسنستعرض جميع التفاصيل: من الاستخدام البسيط لـ empty() إلى المقارنة مع []. جهّز محرر الأكواد المفضل لديك — سيكون هناك الكثير من التطبيق العملي!
لماذا هذا مهم؟ قصة حقيقية من الواقع
\n\nتخيل: أنت تبني متجرًا إلكترونيًا. العميل يضيف منتجات إلى سلة التسوق، ثم يُكمل عملية الشراء. يجب أن يتحقق الكود الخاص بك من وجود منتجات في السلة قبل خصم المبلغ. إذا قمت بالتحقق من أن المصفوفة فارغة في PHP بطريقة خاطئة، فإما أن تخصم المبلغ مقابل سلة فارغة (وستتلقى مكالمة غاضبة من العميل)، أو لن تتم معالجة الطلب على الإطلاق. لهذا السبب، حصد سؤال "How to check whether an array is empty using PHP?" آلاف المشاهدات على Stack Overflow. دعنا نفهم الأمر مرة واحدة وإلى الأبد.
\n\nالطريقة 1: دالة empty() — الأسهل والأكثر شيوعًا
\n\nدالة empty() في PHP هي أداة متعددة الاستخدامات للتحقق من القيم الفارغة. تُرجع true إذا كان المتغير غير موجود، أو يساوي false، أو null، أو سلسلة نصية فارغة، أو 0، أو مصفوفة فارغة. للتحقق من أن المصفوفة فارغة، هذا هو الخيار المثالي.
<?php\n$emptyArray = [];\n$filledArray = ['تفاحة', 'موزة'];\n\nif (empty($emptyArray)) {\n echo 'المصفوفة فارغة!'; // سيطبع: المصفوفة فارغة!\n}\n\nif (!empty($filledArray)) {\n echo 'المصفوفة تحتوي على عناصر: ' . implode(', ', $filledArray);\n // سيطبع: المصفوفة تحتوي على عناصر: تفاحة, موزة\n}\n?>\n\nملاحظة مهمة: empty() لا تُصدر تحذيرًا إذا كان المتغير غير مُعرّف. هذا آمن ومريح. لكن تذكر: إذا كانت المصفوفة تحتوي على عنصر قيمته 0 أو سلسلة نصية فارغة ''، فإن empty() لا تعتبر المصفوفة بأكملها "فارغة" — فهي تتحقق من المصفوفة نفسها، وليس من عناصرها.
الطريقة 2: دالة count() — حساب دقيق للعناصر
\n\nإذا كنت بحاجة إلى معرفة العدد الدقيق للعناصر، استخدم count(). تُعتبر المصفوفة فارغة إذا كان count($array) === 0. هذه الطريقة مفيدة بشكل خاص عندما تريد ليس فقط التحقق من الفراغ، ولكن أيضًا الحصول على حجم المصفوفة.
<?php\n$users = ['أحمد', 'سارة'];\n$emptyUsers = [];\n\nif (count($emptyUsers) === 0) {\n echo 'قائمة المستخدمين فارغة.'; // سيطبع: قائمة المستخدمين فارغة.\n}\n\necho 'عدد المستخدمين: ' . count($users); // سيطبع: 2\n?>\n\nنقطة دقيقة: count() ستعمل حتى على متغير غير موجود، لكنها ستُصدر تحذيرًا Warning: count(): Parameter must be an array or an object that implements Countable. لتجنب الخطأ، قم بدمجها مع isset() أو is_array().
الطريقة 3: المقارنة مع مصفوفة فارغة (=== [])
\n\nأحيانًا، تكون الطريقة الأكثر مباشرة هي الأفضل. يمكنك ببساطة مقارنة المتغير مع مصفوفة فارغة باستخدام المقارنة الصارمة ===. هذا يعمل بسرعة وبشكل بديهي.
<?php\n$data = [];\n\nif ($data === []) {\n echo 'مصفوفة البيانات فارغة.'; // سيطبع: مصفوفة البيانات فارغة.\n}\n\n$config = ['debug' => true];\nif ($config !== []) {\n echo 'الإعدادات ليست فارغة.';\n}\n?>\n\nالمزايا: الكود يُقرأ وكأنه لغة عربية بسيطة. العيوب: إذا كان المتغير غير مُعرّف، ستحصل على خطأ فادح Undefined variable. لذا، استخدم هذه الطريقة فقط عندما تكون متأكدًا من أن المتغير مُعرّف.