1
0
mirror of https://github.com/php/doc-it.git synced 2026-03-24 23:52:12 +01:00
Files
Marco Cucinato 466b492666 Sync with EN
git-svn-id: https://svn.php.net/repository/phpdoc/it/trunk@341898 c90b9560-bf6c-de11-be94-00142212c4b1
2017-02-15 07:03:11 +00:00

317 lines
7.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: n/a Maintainer: cucinato Status: ready -->
<refentry xml:id="function.list" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>list</refname>
<refpurpose>Assegna valori a delle variabili come se fossero un array</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>list</methodname>
<methodparam><type>mixed</type><parameter>var1</parameter></methodparam>
<methodparam rep="repeat" choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
Come <function>array</function>, questa non è in realtà una funzione,
bensì un costrutto del linguaggio. <function>list</function> è usata per
assegnare valori ad una lista di variabili in una sola operazione.
</para>
<note>
<para>
<function>list</function> funziona solo su array numerici e si aspetta
che gli indici numerici partano da 0.
</para>
</note>
<warning>
<para>
In PHP 5, <function>list</function> assegna i valori partendo dal
parametro più a destra. In PHP 7, <function>list</function> comincia dal
parametro più a sinistra.
</para>
<para>
Se si stanno usando variabili semplici, non ci si deve preoccupare di questo comportamento. Ma
se si stanno usando array con indici ci si aspetta che l'ordine degli
indici nell'array sia lo stesso scritto nella funzione <function>list</function>
da sinitra a destra; non è il caso in PHP 5, dal momento che sono assegnati
in ordine inverso.
</para>
<para>
In generale, è sconsigliato fare affidamento su uno specifico ordine
di operazioni, dal momento che questo può cambiare in futuro.
</para>
</warning>
<warning>
<para>
La modifica dell'array durante l'esecuzione di <function>list</function> (es.
usando <literal>list($a, $b) = $b</literal> ha un comportamento indefinito.
</para>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>var1</parameter></term>
<listitem>
<para>
Una variabile.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Restituisce l'array assegnato.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.0.0</entry>
<entry>
<link linkend="migration70.incompatible.variable-handling.list.order">
L'ordine di esecuzione delle operazioni di assegnazione è
cambiato.
</link>
</entry>
</row>
<row>
<entry>7.0.0</entry>
<entry>
<link linkend="migration70.incompatible.variable-handling.list.empty">
Le espressioni <function>list</function> non possono più essere completamente
vuote.
</link>
</entry>
</row>
<row>
<entry>7.0.0</entry>
<entry>
<link linkend="migration70.incompatible.variable-handling.list.string">
Le stringhe non possono più essere spacchettate.
</link>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>esempio di <function>list</function></title>
<programlisting role="php">
<![CDATA[
<?php
$info = array('caffè', 'scuro', 'caffeina');
// assegna a tutte le variabili
list($bevanda, $colore, $componente) = $info;
echo "Il $bevanda è $colore e la $componente lo rende speciale.\n";
// assegna solo in parte
list($bevanda, , $componente) = $info;
echo "Il $bevanda ha la $componente.\n";
// oppure assegnamo solo l'ultima variabile
list( , , $componente) = $info;
echo"Ho voglia di $componente!\n";
// list() non funziona con le stringhe
list($bar) = "abcde";
var_dump($bar); // NULL
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Esempio di uso di <function>list</function></title>
<programlisting role="php">
<![CDATA[
<table>
<tr>
<th>Nome dell'impiegato</th>
<th>Stipendio</th>
</tr>
<?php
$risultato = $pdo_query("SELECT id, nome, stipendio FROM impiegati");
while (list($id, $nome, $stipendio) = $result->fetch(PDO::FETCH_NUM)) {
echo (" <tr>\n".
" <td><a href=\"info.php?id=$id\">$nome</a></td>\n".
" <td>$stipendio</td>\n".
" </tr>\n");
}
?>
</table>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Utilizzare <function>list</function> annidate</title>
<programlisting role="php">
<![CDATA[
<?php
list($a, list($b, $c)) = array(1, array(2, 3));
var_dump($a, $b, $c);
?>
]]>
</programlisting>
<screen>
<![CDATA[
int(1)
int(2)
int(3)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Utilizzo di <function>list</function> con gli indici</title>
<programlisting role="php">
<![CDATA[
<?php
$info = array('caffè', 'nero', 'caffeina');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>
]]>
</programlisting>
<para>
Restituisce il seguente risultato (si noti l'ordine degli elementi rispetto
all'ordine con cui sono stati scritti nella sintassi di <function>list</function>).
</para>
&example.outputs.7;
<screen>
<![CDATA[
array(3) {
[2]=>
string(8) "caffeina"
[1]=>
string(4) "nero"
[0]=>
string(5) "caffè"
}
]]>
</screen>
&example.outputs.5;
<screen>
<![CDATA[
array(3) {
[2]=>
string(8) "caffeine"
[1]=>
string(5) "brown"
[0]=>
string(6) "coffee"
}
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>list</function> e ordine delle definizioni dell'indice</title>
<simpara>
L'ordine con il quale sono definiti gli indici dell'array da consumare da parte di
<function>list</function> è irrilevante.
</simpara>
<programlisting role="php">
<![CDATA[
<?php
$foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);
]]>
</programlisting>
<para>
Restituisce il seguente risultato (si noti l'ordine degli elementi in rapporto a
quello con cui sono scritti nella sintassi di <function>list</function>):
</para>
<screen>
<![CDATA[
array(4) {
[2]=>
string(1) "a"
["foo"]=>
string(1) "b"
[0]=>
string(1) "c"
[1]=>
string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>each</function></member>
<member><function>array</function></member>
<member><function>extract</function></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
-->