Files
php-doc-ru/reference/array/functions/each.xml
Shein Alexey 98518057fa Updated translation.
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@307946 c90b9560-bf6c-de11-be94-00142212c4b1
2011-02-02 09:56:25 +00:00

194 lines
5.9 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: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="function.each" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>each</refname>
<refpurpose>Возвращает текущую пару ключ/значение из массива и смещает его указатель</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>each</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
</methodsynopsis>
<para>
Возвращает текущую пару ключ/значение из массива и смещает его указатель.
</para>
<para>
После выполнения <function>each</function>, указатель массива
перемещается к следующему его элементу, пока не будет достигнут
конец массива. Для повторного обхода массива при помощи
each необходимо использовать функцию <function>reset</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
Входной массив.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает текущую пару ключ/значение из массива
<parameter>array</parameter>. Данная пара возвращается в
массива из четырех элементов, с ключами <literal>0</literal>,
<literal>1</literal>, <literal>key</literal> и <literal>value</literal>.
Элементы <literal>0</literal> и <literal>key</literal> содержат
имя ключа элемента массива, а <literal>1</literal> и <literal>value</literal>
содержат его данные.
</para>
<para>
Если внутренний указатель массива указывает за его пределы,
<function>each</function> возвратит &false;.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Примеры использования <function>each</function></title>
<programlisting role="php">
<![CDATA[
<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>
]]>
</programlisting>
<para>
<varname>$bar</varname> теперь содержит следующие пары ключ/значение:
</para>
<screen>
<![CDATA[
Array
(
[1] => bob
[value] => bob
[0] => 0
[key] => 0
)
]]>
</screen>
</example>
</para>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>
]]>
</programlisting>
<para>
<varname>$bar</varname> теперь содержит следующие пары ключ/значение:
</para>
<screen>
<![CDATA[
Array
(
[1] => Bob
[value] => Bob
[0] => Robert
[key] => Robert
)
]]>
</screen>
</informalexample>
</para>
<para>
<function>each</function> обычно используется совместно с
<function>list</function> для обхода массива, как
в этом примере:
<example>
<title>Обход массива функцией <function>each</function></title>
<programlisting role="php">
<![CDATA[
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
a => apple
b => banana
c => cranberry
]]>
</screen>
</example>
</para>
<caution>
<para>
Посколько добавление элемента в массив сбрасывает указатель,
вышеприведённый пример может привести бесконечному циклу, если
мы будем присваивать <varname>$fruit</varname> другие значения внутри цикла.
</para>
</caution>
<warning>
<para>
Функция <function>each</function> также принимает и объекты,
но может возратить неожиданные результаты, поэтому итерировать
свойства объекта с помощью <function>each</function> не рекомендуется.
</para>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>key</function></member>
<member><function>list</function></member>
<member><function>current</function></member>
<member><function>reset</function></member>
<member><function>next</function></member>
<member><function>prev</function></member>
<member>&foreach;</member>
<member><link linkend="language.oop5.iterations">Итерация объектов</link></member>
</simplelist>
</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:"~/.phpdoc/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
-->