1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.17 $ -->
<!-- splitted from ./en/functions/array.xml, last change in rev 1.2 -->
<refentry id="function.count">
<refnamediv>
<refname>count</refname>
<refpurpose>Count elements in an array, or properties in an object</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<methodsynopsis>
<type>int</type><methodname>count</methodname>
<methodparam><type>mixed</type><parameter>var</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter></methodparam>
</methodsynopsis>
<para>
Returns the number of elements in <parameter>var</parameter>,
which is typically an <type>array</type>, since anything else
will have one element.
</para>
<para>
For objects, if you have
<link linkend="ref.spl">SPL</link> installed, you can hook into
<function>count</function> by implementing interface
<literal>Countable</literal>. The interface has exactly one method,
<function>count</function>, which returns the return value for the
<function>count</function> function.
</para>
<para>
If <parameter>var</parameter> is not an array or an object with
implemented <literal>Countable</literal> interface,
<literal>1</literal> will be returned.
There is one exception, if <parameter>var</parameter> is &null;,
<literal>0</literal> will be returned.
</para>
<note>
<simpara>
The optional <parameter>mode</parameter> parameter is available as of
PHP 4.2.0.
</simpara>
</note>
<para>
If the optional <parameter>mode</parameter> parameter is set to
<constant>COUNT_RECURSIVE</constant> (or 1), <function>count</function>
will recursively count the array. This is particularly useful for
counting all the elements of a multidimensional array. The default
value for <parameter>mode</parameter> is <literal>0</literal>.
<function>count</function> does not detect infinite recursion.
</para>
<caution>
<para>
<function>count</function> may return 0 for a variable that
isn't set, but it may also return 0 for a variable that has
been initialized with an empty array. Use
<function>isset</function> to test if a variable is set.
</para>
</caution>
<para>
Please see the <link linkend="language.types.array">Array</link>
section of the manual for a detailed explanation of how arrays
are implemented and used in PHP.
</para>
<para>
<example>
<title><function>count</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count($b);
// $result == 3
$result = count(null);
// $result == 0
$result = count(false);
// $result == 1
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>
Recursive <function>count</function> example (PHP >= 4.2.0)
</title>
<programlisting role="php">
<![CDATA[
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// recursive count
echo count($food, COUNT_RECURSIVE); // output 8
// normal count
echo count($food); // output 2
?>
]]>
</programlisting>
</example>
</para>
<para>
See also <function>is_array</function>,
<function>isset</function>, and
<function>strlen</function>.
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|