1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-28 01:32:09 +01:00
Files
archived-doc-ru/reference/array/functions/count.xml
Hannes Magnusson 245266cba8 Upgrade to DocBook5:
- All id attributes are now xml:id
 - Add docbook namespace to all root elements
 - Replace <ulink /> with <link xlink:href />
 - Minor markup fixes here and there
 - Bump EN-Revision where appropriate


git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@238337 c90b9560-bf6c-de11-be94-00142212c4b1
2007-06-23 13:31:28 +00:00

143 lines
5.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1.17 Maintainer: sveta Status: ready -->
<!-- $Revision: 1.4 $ -->
<!-- splitted from ./en/functions/array.xml, last change in rev 1.2 -->
<refentry xml:id="function.count" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>count</refname>
<refpurpose>Посчитать количество элементов массива или количество свойств объекта</refpurpose>
</refnamediv>
<refsect1>
<title>Описание</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>
Возвратить количество элементов переменной <parameter>var</parameter>,
которая обычно является <type>array</type>, или любым другим объектом, который может
содержать хотя бы один элемент.
</para>
<para>
Для объектов <function>count</function> возвращает количество нестатических
свойств, не принимая во внимание видимость. Если у вас включена поддержка
<link linkend="ref.spl">SPL</link>, вы можете перехватить
<function>count</function>, реализуя интерфейс
<literal>Countable</literal>. Этот интерфейс имеет только один метод,
<function>count</function>, который возвращает значение функции
<function>count</function>.
</para>
<para>
Если <parameter>var</parameter> не является массивом или объектом,
реализующим интерфейс <literal>Countable</literal>,
будет возвращена <literal>1</literal>.
За одним исключением: если <parameter>var</parameter> - &null;,
то будет возвращён <literal>0</literal>.
</para>
<note>
<simpara>
Дополнительный параметр <parameter>mode</parameter> был добавлен начиная с
PHP 4.2.0.
</simpara>
</note>
<para>
Если дополнительный параметр <parameter>mode</parameter> установлен в
<constant>COUNT_RECURSIVE</constant> (или 1), <function>count</function>
будет считать количество элементов массива рекурсивно. Это особенно полезно для подсчёта
всех элементов многомерных массивов. Предустановленное значение
параметра <parameter>mode</parameter> - <literal>0</literal>.
<function>count</function> не обнаруживает бесконечную рекурсию.
</para>
<caution>
<para>
<function>count</function> может возвратить 0 для переменных, которые
не установлены, но также может возвратить 0 для переменных, которые
инициализированы пустым массивом. Используйте функцию
<function>isset</function> для того, чтобы протестировать, установлена ли переменная.
</para>
</caution>
<para>
Пожалуйста, см. раздел этого руководства <link linkend="language.types.array">Array</link>
для того, чтобы получить детальное представление о реализации и использовании
массивов в PHP.
</para>
<para>
<example>
<title>Пример использования <function>count</function></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>
Пример рекурсивного использования <function>count</function> (PHP &gt;= 4.2.0)
</title>
<programlisting role="php">
<![CDATA[
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// рекурсивный count
echo count($food, COUNT_RECURSIVE); // output 8
// обычный count
echo count($food); // output 2
?>
]]>
</programlisting>
</example>
</para>
<para>
См. также <function>is_array</function>,
<function>isset</function> и
<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
-->