الدالة count()‎ في PHP

من موسوعة حسوب
< PHP

(PHP 4, PHP 5, PHP 7)

تُحصي الدالة count()‎ جميع العناصر في مصفوفة، أو شيء ما في كائن.

الوصف

int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )

تُحصي هذه الدالة جميع العناصر في مصفوفة، أو شيء ما في كائن.

بالنسبة للكائنات، إذا كانت مكتبة PHP القياسية SPL مثبتة لديك، فيمكنك ربط count()‎ عبر واجهة التطبيق Countable. وتحتوي الواجهة على دالة واحدة، Countable :: count()‎، وهي نفسها التي تُعيد القيمة المُعادة للدالة count()‎.

الرجاء مراجعة قسم array من الدليل للحصول على شرح مفصل حول كيفية تطبيق المصفوفات واستخدامها في PHP.

المعاملات

array_or_countable

مصفوفة أو كائن قابل للإحصاء.

mode

إذا ضُبِط المعامل mode الاختياري إلى COUNT_RECURSIVE (أو 1)، فستحصي الدالة count()‎ المصفوفة تكرريًا (recursively). وهو أمر مفيد بشكل خاص لإحصاء جميع عناصر مصفوفة متعددة الأبعاد.

تنبيه: يمكن أن تكتشف الدالة count()‎ العَودية (recursion) لتجنب الدخول في حلقة لا نهائية، ولكنها ستصدر E_WARNING في كل مرة (إذا احتوت المصفوفة على نفسها أكثر من مرة) وستُعيد عددًا أعلى من المتوقع.

القيم المعادة

تُعيد هذه الدالة عدد العناصر في array_or_countable. عندما يكون المعامل ليس مصفوفة ولا كائنًا مع واجهة قابلة للإحصاء، فستُعيد القيمة 1. هناك استثناء واحد، إذا كانت قيمة array_or_countable تساوي NULL، فسستُعيد الدالة القيمة 0.

تنبيه: قد تعيد الدالة count()‎ القيمة 0 للمتغير الذي لم تُعيّن له قيمة، ولكنها قد تُعيد أيضًا القيمة 0 للمتغير إذا هُيّئ باستخدام مصفوفة فارغة. استخدم isset()‎ لاختبار ما إذا كان المتغير مُعيَّنًا أم لا.

أمثلة

المثال 1: مثال على الدالة count()‎

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
var_dump(count($b));

var_dump(count(null));

var_dump(count(false));
?>

سوف تكون مُخرجات المثال أعلاه كالتالي:

int(3)
int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in  on line 12 // as of PHP 7.2
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in  on line 14 // as of PHP 7.2
int(1)

المثال 2: مثال على استخدام الدالة count()‎ تكراريًا

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
             'veggie' => array('carrot', 'collard', 'pea'));
// إحصاء متكرر
echo count($food, COUNT_RECURSIVE); // المُخرَج 8
// إحصاء عادي
echo count($food); // المُخرَج 2
?>

سجل التغييرات

الإصدار الوصف
7.2.0 تعطي الدالة count()‎ الآن تحذيرًا عند استخدام أنواع قابلة للإحصاء غير صالحة مُمررة إلى المعامل array_or_countable.

انظر أيضًا

  • الدالة is_array()‎: تحديد ما إذا كان نوع المتغير مصفوفة.
  • الدالة isset()‎: تحديد ما إذا كان المتغير معينًا وقيمته ليست NULL.
  • الدالة empty()‎: تحديد ما إذا كان المتغير فارغًا.
  • الدالة strlen()‎: الحصول على طول سلسلة نصية.

مصادر