Files
doc-fr/language/types/iterable.xml
George Peter Banyard 47bb6a23cb Move iterable variance section to OOP section
Variance page is not translated to French yet
2021-05-04 19:02:03 +01:00

150 lines
3.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5ccee0ae1c9978e1b28b0dd3ff901393f8be19e9 Maintainer: jbnahan Status: ready -->
<!-- Reviewed: yes Maintainer: girgias -->
<sect1 xml:id="language.types.iterable">
<title>Itérables</title>
<para>
Un iterable est un pseudo-type introduit en PHP 7.1. Il accepte n'importe quel
&array; ou objet implémentant l'interface <classname>Traversable</classname>.
Ces deux types d'itérables peuvent utiliser &foreach; et peuvent être appelés
avec <command>yield from</command> depuis un
<link linkend="language.generators">générateur</link>.
</para>
<sect2 xml:id="language.types.iterable.using">
<title>Utilisation des Itérables</title>
<para>
Les Itérables peuvent être utilisés comme type d'argument pour indiquer qu'une
fonction a besoin d'un ensemble de valeurs, mais se moque de la structure de
l'ensemble puisqu'il va être utilisé avec &foreach;.
Si une valeur passée en argument n'est pas un tableau ou une instance de
<classname>Traversable</classname>, une exception
<classname>TypeError</classname> sera lancée.
</para>
<para>
<example>
<title>
Exemple de type d'argument itérable
</title>
<programlisting role="php">
<![CDATA[
<?php
function foo(iterable $iterable) {
foreach ($iterable as $value) {
// ...
}
}
?>
]]>
</programlisting>
</example>
</para>
<para>
Les paramètres déclarés comme itérables peuvent utiliser &null; ou un tableau
comme valeur par défaut.
</para>
<para>
<example>
<title>
Exemple de valeur par défaut d'un argument itérable
</title>
<programlisting role="php">
<![CDATA[
<?php
function foo(iterable $iterable = []) {
// ...
}
?>
]]>
</programlisting>
</example>
</para>
<para>
Les itérables peuvent aussi être utilisés comme déclaration du type de retour
pour indiquer qu'une fonction renverra une valeur itérable.
Si la valeur renvoyée n'est pas un tableau ou une instance de
<classname>Traversable</classname>, une exception
<classname>TypeError</classname> sera lancée.
</para>
<para>
<example>
<title>
Exemple de type de retour itérable.
</title>
<programlisting role="php">
<![CDATA[
<?php
function bar(): iterable {
return [1, 2, 3];
}
?>
]]>
</programlisting>
</example>
</para>
<para>
Les fonctions déclarant un type de retour itérable peuvent aussi être
des <link linkend="language.generators">générateurs</link>.
</para>
<para>
<example>
<title>
Exemple de type de retour itérable d'un générateur
</title>
<programlisting role="php">
<![CDATA[
<?php
function gen(): iterable {
yield 1;
yield 2;
yield 3;
}
?>
]]>
</programlisting>
</example>
</para>
</sect2>
</sect1>
<!-- 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
-->