1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 00:32:15 +01:00
Files
archived-doc-ru/reference/array/functions/each.xml
2024-02-08 10:39:26 +03:00

205 lines
6.3 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: a6655e3f9508eee6860b02f55e33560a790f42d1 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.each" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>each</refname>
<refpurpose>Возвращает текущую пару ключа и значения массива и сдвигает указатель на одну позицию вперёд</refpurpose>
</refnamediv>
<refsynopsisdiv>
&warn.deprecated.function-7-2-0.removed-8-0-0;
</refsynopsisdiv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>each</methodname>
<methodparam><type class="union"><type>array</type><type>object</type></type><parameter role="reference">array</parameter></methodparam>
</methodsynopsis>
<para>
Возвращает текущую пару ключа и значения массива и продвигает внутренний указатель массива на одну позицию.
</para>
<para>
После выполнения функции <function>each</function> указатель массива
останется на следующем элементе или за последним элементом,
если указатель достигнет конца массива. Для повторного обхода
каждого элемента массива, нужно вызвать функцию <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
-->