php-doc-en/reference/array/functions/count.xml

139 lines
4.1 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.13 $ -->
<!-- splitted from ./en/functions/array.xml, last change in rev 1.2 -->
<refentry id="function.count">
<refnamediv>
<refname>count</refname>
<refpurpose>Count elements in a variable</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 other than objects
will have one element).
</para>
<para>
For objects it returns the number of non static properties not taking
visibility into account. If you have SPL starting from PHP 5.1 you can
hook into coun() by implementing interface Countable. That interface
has exactly one method named count() which delivers the return value
for the count() function.
</para>
<para>
If <parameter>var</parameter> is not an array, <literal>1</literal> will
be returned (exception: <literal>count(&null;)</literal> equals
<literal>0</literal>).
</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">Arrays</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">
<!-- TODO: examples about count(null), count(false), count(object).. -->
<![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;
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>
recursive <function>count</function> example (PHP &gt;= 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>
<note>
<para>
The <function>sizeof</function> function is an
<link linkend="aliases">alias</link> for <function>count</function>.
</para>
</note>
<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
-->