الفرق بين المراجعتين لصفحة: «PHP/count»

من موسوعة حسوب
< PHP
ط استبدال النص - 'PHP/Function/isset' ب'PHP/isset'
ط استبدال النص - 'PHP/Types/array' ب'PHP/array'
سطر 11: سطر 11:
بالنسبة للكائنات، إذا كانت مكتبة PHP القياسية SPL مثبتة لديك، فيمكنك ربط <code>count()‎</code> عبر واجهة التطبيق Countable. وتحتوي الواجهة على دالة واحدة، <code>Countable :: count()‎</code>، وهي نفسها التي تُعيد القيمة المُعادة للدالة <code>count()‎</code>.
بالنسبة للكائنات، إذا كانت مكتبة PHP القياسية SPL مثبتة لديك، فيمكنك ربط <code>count()‎</code> عبر واجهة التطبيق Countable. وتحتوي الواجهة على دالة واحدة، <code>Countable :: count()‎</code>، وهي نفسها التي تُعيد القيمة المُعادة للدالة <code>count()‎</code>.


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


= المعاملات =
= المعاملات =

مراجعة 03:33، 4 أبريل 2018

(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()‎: الحصول على طول سلسلة نصية.

مصادر