cortesi         Thu Mar 28 08:27:53 2002 EDT

  Modified files:              
    /phpdoc/it/functions        var.xml 
  Log:
  updating: translation by Darvin Andrioli
  
Index: phpdoc/it/functions/var.xml
diff -u phpdoc/it/functions/var.xml:1.15 phpdoc/it/functions/var.xml:1.16
--- phpdoc/it/functions/var.xml:1.15    Sat Feb  2 10:41:57 2002
+++ phpdoc/it/functions/var.xml Thu Mar 28 08:27:53 2002
@@ -1,62 +1,68 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- EN-Revision: 1.23 Maintainer: marchesini Status: ready -->
+<!-- EN-Revision: 1.99 Maintainer: darvin Status: ready -->
 <reference id="ref.variables">
   <title>Funzioni di Variabili</title>
   <titleabbrev>Variabili</titleabbrev>
+  <partintro>  
+     <para>  
+      Per maggiori informazioni sul comportamento delle variabili vedere
+      la sezione <link linkend="language.variables">Variabili</link> nel capitolo
+      <link linkend="langref">Riferimento al Linguaggio</link> del manuale.  
+     </para>  
+  </partintro>
 
   <refentry id="function.doubleval">
    <refnamediv>
     <refname>doubleval</refname>
-    <refpurpose>Estrae il valore numerico a virgola mobile (double) da una 
variabile</refpurpose>
+    <refpurpose>Alias di <function>floatval</function></refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descrizione</title>
-     <methodsynopsis>
-      <type>double</type><methodname>doubleval</methodname>
-      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
-     </methodsynopsis>
-    <simpara>
-     Estrae il valore numerico a virgola mobile (double) da
-     <parameter>var</parameter>.
-    </simpara>
     <para>
-     <parameter>Var</parameter> pu� essere una qualsiasi variabile scalare. Non � 
possibile usare
-     <function>doubleval</function> con array o oggetti.
-    <informalexample>
-      <programlisting role="php">
-$var = '122.34343pippo';
-$double_value_di_var = doubleval ($var);
-print double_value_di_var; // visualizza 122.34343
-      </programlisting>
-     </informalexample>
+     Questa funzione � un alias di <function>floatval</function>.
     </para>
-    <simpara>
-     Si veda anche <function>intval</function>,
-     <function>strval</function>, <function>settype</function> e
-     <link linkend="language.types.type-juggling">Type
-     juggling</link>.
-    </simpara>
+    <note>
+     <para>
+      Questo alias � una rimanenza dalla ridenominazione di alcune funzioni. Nelle
+      vecchie versioni di PHP, occorre utilizzare questo alias al posto della funzione
+      <function>floatval</function>, questo perch� la suddetta funzione non era
+      disponibile.
+     </para>
+    </note>
    </refsect1>
   </refentry>
 
   <refentry id="function.empty">
    <refnamediv>
     <refname>empty</refname>
-    <refpurpose>Determina se una variabile � vuota, nulla o indefinita</refpurpose>
+    <refpurpose>Determina se una variabile � valorizzata</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>empty</methodname>
+      <type>boolean</type><methodname>empty</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
+     <note>
+     <para>
+      <function>empty</function> � un costrutto del linguaggio.
+     </para>
+    </note>
     <para>
-     Restituisce &false; se <parameter>var</parameter> � definita ed ha un valore non 
vuoto 
-     e non uguale a zero; altrimenti restituisce &true;.
+     Questo � l'opposto di 
+     <literal>(boolean) <parameter>var</parameter></literal>, tranne che
+     non viene dato alcun warning quando  la variabile non � valorizzata.
+     Vedere il capitolo <link linkend="language.types.boolean.casting">Conversione a
+     booleano</link> per maggiori informazioni.
+    </para>
+   
+     <!-- Restituisce &false; se <parameter>var</parameter> � definita ed ha un 
+valore non vuoto 
+     e non uguale a zero; altrimenti restituisce &true;. -->
+
      <informalexample>
       <programlisting role="php">
 $var = 0;
-if (empty($var)) { #restituisce true 
+if (empty($var)) { // restituisce true 
     print '$var � uguale a 0 oppure non � definita';
 }
 if (!isset($var)) { // restituisce false
@@ -64,20 +70,57 @@
 }
       </programlisting>
      </informalexample>
-    </para>
+    
     <simpara>
      Si noti che la funzione perde di significato se applicata a qualcosa che non sia 
una 
-     variabile; ad.es. <command>empty (addslashes ($name))</command> non ha 
significato 
+     variabile; ad esempio  <command>empty (addslashes ($name))</command> non ha 
+significato 
      perch� tenta di verificare se un qualcosa che non � una variabile � una 
variabile 
-     con un valore nullo.
+     con un valore &false;.
+     <!-- potr� generare un errore di parsing (almeno in PHP 4) -->
     </simpara>
     <simpara>
-     Si veda anche <function>isset</function> e
+     Vedere anche <function>isset</function> e
      <function>unset</function>.
     </simpara>
    </refsect1>
   </refentry>
 
+  <refentry id="function.floatval">
+   <refnamediv>
+    <refname>floatval</refname>
+    <refpurpose>Restituisce il valore di una variabile di tipo float</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>float</type><methodname>floatval</methodname>
+      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
+     </methodsynopsis>
+    <simpara>
+     La funzione restituisce il valore di tipo <type>float</type> di 
+<parameter>var</parameter>.
+    </simpara>
+    <para>
+     La variabile <parameter>Var</parameter> pu� anche essere di tipo scalare. La 
+funzione 
+     <function>floatval</function> non pu� essere usata con variabili di tipo array 
+oppure object.
+    <informalexample>
+      <programlisting role="php">
+<![CDATA[
+$var = '122.34343The';
+$valore_float_di_var = floatval ($var);
+print $valore_float_di_var; // visualizza 122.34343
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <simpara>
+     Vedere anche <function>intval</function>,
+     <function>strval</function>, <function>settype</function> e
+     <link linkend="language.types.type-juggling">Manipolazione dei Tipi
+     </link>.
+    </simpara>
+   </refsect1>
+  </refentry>
+
   <refentry id="function.gettype">
    <refnamediv>
     <refname>gettype</refname>
@@ -90,38 +133,222 @@
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <para>
-     Resituisce il tipo della variabile PHP
+     Restituisce il tipo della variabile PHP
      <parameter>var</parameter>.
     </para>
+    <warning>
+     <simpara>
+      Non utilizzare <function>gettype</function> per testare certi tipi di variabili
+      poich� la stringa restistuita potrebbe variare nelle versioni future.
+      Inoltre questa funzione � lenta dato che richiede confronti tra stringhe <!--
+      where's my dictionary? -->.
+     </simpara>
+     <simpara>
+      Piuttosto utilizzare le funzioni <literal>is_*</literal>.
+     </simpara>
+    </warning>
     <para>
      La stringa restituita pu� assumere i seguenti valori:
      <itemizedlist>
       <listitem>
-       <simpara>"integer"</simpara>
+       <simpara>"<type>boolean</type>" (dalla versione 4 di PHP)</simpara>
+      </listitem>
+      <listitem>
+       <simpara>"<type>integer</type>"</simpara>
+      </listitem>
+      <listitem>
+       <simpara>"<type>double</type>" (per ragioni storiche viene restituito
+       "double" in caso di variabile di tipo <type>float</type>, e non
+       semplicemente "float")</simpara>
       </listitem>
       <listitem>
-       <simpara>"double"</simpara>
+       <simpara>"<type>string</type>"</simpara>
       </listitem>
       <listitem>
-       <simpara>"string"</simpara>
+       <simpara>"<type>array</type>"</simpara>
       </listitem>
       <listitem>
-       <simpara>"array"</simpara>
+       <simpara>"<type>object</type>"</simpara>
       </listitem>
       <listitem>
-       <simpara>"object"</simpara>
+       <simpara>"<type>resource</type>" (dalla versione 4 di PHP)</simpara>
       </listitem>
       <listitem>
-       <simpara>"unknown type"</simpara>
+       <simpara>"<type>NULL</type>" (dalla versione 4 di PHP)</simpara>
+      </listitem>
+      <listitem>
+       <simpara>"user function" (soltanto in PHP 3, deprecated)</simpara>
+      </listitem>
+      <listitem>
+       <simpara>"unknown type"<!-- someone's joking? --></simpara>
       </listitem>
      </itemizedlist>
     </para>
     <para>
-     Si veda anche <function>settype</function>.
+     Nella versione 4 di PHP si dovrebbe applicare alle funzioni 
+     <function>function_exists</function> o <function>method_exists</function> 
+     al posto del precedente <function>gettype</function>.
+    </para>
+    <para>
+     Vedere anche
+     <function>settype</function>,
+     <function>is_array</function>,
+     <function>is_bool</function>,
+     <function>is_float</function>,
+     <function>is_integer</function>,
+     <function>is_null</function>,
+     <function>is_numeric</function>,
+     <function>is_object</function>,
+     <function>is_resource</function>,
+     <function>is_scalar</function> e
+     <function>is_string</function>.
     </para>
    </refsect1>
   </refentry>
 
+  <refentry id="function.get-defined-vars">
+   <refnamediv>
+    <refname>get_defined_vars</refname>
+    <refpurpose>
+     Restituisce un'array contenente tutte le variabili definite
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>array</type><methodname>get_defined_vars</methodname>
+      <void/>
+     </methodsynopsis>
+    <para>
+     Questa funzione restituisce un'array multidimensionale contenente la lista
+     di tutte le variabili definite, siano esse d'ambiente, variabili del server
+     o definite dall'utente.
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+$b = array(1,1,2,3,5,8);
+
+$arr = get_defined_vars();
+
+// visualizza $b
+print_r($arr["b"]);
+
+// visualizza il percorso dell'interprete PHP (se usato come CGI)
+// ad esempio /usr/local/bin/php
+echo $arr["_"];
+
+// visualizza i parametri della linea di comando (se presenti)
+print_r($arr["argv"]);
+
+// visualizza tutte le variabili del server
+print_r($arr["HTTP_SERVER_VARS"]);
+
+// visualizza tutte le chiavi disponibili nell'array delle variabili
+print_r(array_keys(get_defined_vars()));
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <para>
+     Vedere anche <function>get_defined_functions</function> e
+     <function>get_defined_constants</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.get-resource-type">
+   <refnamediv>
+    <refname>get_resource_type</refname>
+    <refpurpose>
+     Restituisce il tipo di risorsa
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>string</type><methodname>get_resource_type</methodname>
+      <methodparam><type>resource</type><parameter>handle</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     Questa funzione restituisce una stringa rappresentante il tipo di 
+     risorsa passato. Se il parametro passato non � una
+     risorsa valida la funzione genera un
+     errore.
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+$c = mysql_connect();
+echo get_resource_type($c)."\n";
+// visualizza: mysql link
+
+$fp = fopen("foo","w");
+echo get_resource_type($fp)."\n";
+// visualizza: file
+
+$doc = new_xmldoc("1.0");
+echo get_resource_type($doc->doc)."\n";
+// visualizza: domxml document
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.import-request-variables">
+   <refnamediv>
+    <refname>import_request_variables</refname>
+    <refpurpose>Imposta la visibilt� a globale per le variabili 
+GET/POST/Cookie</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>import_request_variables</methodname>
+      <methodparam><type>string</type><parameter>tipo</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>string</type><parameter>prefisso</parameter></methodparam>
+     </methodsynopsis>
+    <simpara>
+     Imposta la visibilit� delle variabili GET/POST/Cookie a globale.
+     Ci� risulta utile nei casi in cui si � disabilitato
+     <link linkend="ini.register-globals">register_globals</link>,
+     ma si vuole avere per qualche variabile una visibilit� globale.
+    </simpara>
+    <simpara>
+     Tramite il parametro <parameter>tipo</parameter>, si pu� 
+     specificare quale variabile rendere visibile. I valori ammessi sono
+     i caratteri 'G', 'P' e 'C' rispettivamente per GET, POST e
+     Cookie. Questi caratteri non distinguono tra maiuscole e minuscole
+     pertanto si pu� usare qualsiasi combinazione di 'g', 'p' e 'c'.
+     Occorre prestare attenzione all'ordine delle lettere, ad esempio usando "gp",
+     le variabili POST sovrascrivono le variabili GET con il medesimo
+     nome. Qualsiasi altra lettera al di fuori di GPC sar� scartata.
+    </simpara>
+    <note>
+     <para>
+      Sebbene il parametro <parameter>prefisso</parameter> sia
+      opzionale, si ottiene un errore di livello "notice" se non
+      si specifica il prefisso, o si indica una stringa vuota.
+      Ci� pu� comportare dei rischi di sicurezza. Gli errori
+      di livello "notice" non sono visualizzati con la soglia
+      minima di errore standard.
+     </para>
+    </note>
+    <informalexample>
+     <programlisting role="php">
+<![CDATA[
+// Questo esempio rende visibili le variabili GET e POST 
+// con il prefisso "rvar_" 
+import_request_variables("gP", "rvar_");
+]]>
+     </programlisting>
+    </informalexample>
+    <simpara>
+     Vedere anche <link linkend="ini.register-globals">register_globals</link>
+     e <link linkend="ini.track-vars">track_vars</link>.
+    </simpara>
+   </refsect1>
+  </refentry>
+
   <refentry id="function.intval">
    <refnamediv>
     <refname>intval</refname>
@@ -140,10 +367,17 @@
     </simpara>
     <simpara>
      <parameter>Var</parameter> pu� essere una qualsiasi variabile scalare. Non � 
possibile utilizzare
-     <function>intval</function> con array oppure oggetti.
+     <function>intval</function> con variabili di tipo <type>array</type> o 
+<type>object</type>.
     </simpara>
+    <note>
+     <para>
+      Il parametro <parameter>base</parameter> di
+      <function>intval</function> non ha effetto se 
+      <parameter>var</parameter> non � una stringa.
+     </para>
+    </note>
     <simpara>
-     Si veda anche <function>doubleval</function>,
+     Vedere anche <function>doubleval</function>,
      <function>strval</function>, <function>settype</function> e
      <link linkend="language.types.type-juggling">Manipolazione dei Tipi</link>.
     </simpara>
@@ -158,7 +392,7 @@
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>is_array</methodname>
+      <type>bool</type><methodname>is_array</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <para>
@@ -166,13 +400,11 @@
      in caso contrario.
     </para>
     <para>
-     Si veda anche <function>is_double</function>,
+     Vedere anche 
      <function>is_float</function>,
      <function>is_int</function>,
      <function>is_integer</function>,
-     <function>is_real</function>,
-     <function>is_string</function>,
-     <function>is_long</function>, e
+     <function>is_string</function> e
      <function>is_object</function>.
     </para>
    </refsect1>
@@ -188,22 +420,20 @@
     <refsect1>
      <title>Descrizione</title>
      <methodsynopsis>
-       <type>int</type><methodname>is_bool</methodname>
+       <type>bool</type><methodname>is_bool</methodname>
        <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
      <para>
       Restituisce &true; se <parameter>var</parameter> � 
-      di tipo boolean.
+      di tipo <type>boolean</type>.
      </para>
      <para>
-     Si veda anche <function>is_array</function>,
-     <function>is_double</function>,
+     Vedere anche
+     <function>is_array</function>,
      <function>is_float</function>,
      <function>is_int</function>,
      <function>is_integer</function>,
-     <function>is_real</function>,
-     <function>is_string</function>,
-     <function>is_long</function>, e
+     <function>is_string</function>, and
      <function>is_object</function>.
     </para>
    </refsect1>
@@ -212,28 +442,12 @@
   <refentry id="function.is-double">
    <refnamediv>
     <refname>is_double</refname>
-    <refpurpose>Verifica se una variabile � di tipo double (decimale a virgola 
mobile)</refpurpose>
+    <refpurpose>Alias di <function>is_float</function></refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descrizione</title>
-     <methodsynopsis>
-      <type>int</type><methodname>is_double</methodname>
-      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
-     </methodsynopsis>
     <para>
-     Restituisce &true; se <parameter>var</parameter> � un decimale a virgola mobile,
-     &false; in caso contrario.
-    </para>
-    <para>
-     Si veda anche <function>is_array</function>,
-     <function>is_bool</function>,
-     <function>is_float</function>,
-     <function>is_int</function>,
-     <function>is_integer</function>,
-     <function>is_real</function>,
-     <function>is_string</function>,
-     <function>is_long</function>, e
-     <function>is_object</function>.
+     Questa funzione � un alias di <function>is_float</function>.
     </para>
    </refsect1>
   </refentry>
@@ -246,22 +460,29 @@
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>is_float</methodname>
+      <type>bool</type><methodname>is_float</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <simpara>
-     Questa funzione � equivalente a <function>is_double</function>.
+     Questa funzione restituisce &true; se <parameter>var</parameter> � di tipo 
+<type>float</type>,
+     &false; in caso contrario.
     </simpara>
+    <note>
+     <para>
+      Per verificare se una variabile � un numero oppure una stringa numerica
+      (come le variabili dei form, che sono sempre stringhe) occorre usare
+      la funzione  <function>is_numeric</function>.
+     </para>
+    </note>
     <simpara>
-     Si veda anche <function>is_double</function>,
+     Vedere anche 
      <function>is_bool</function>,
-     <function>is_real</function>,
      <function>is_int</function>,
      <function>is_integer</function>,
+     <function>is_numeric</function>,
      <function>is_string</function>,
+     <function>is_array</function> e
      <function>is_object</function>,
-     <function>is_array</function>, e
-     <function>is_long</function>.
     </simpara>
    </refsect1>
   </refentry>
@@ -274,22 +495,28 @@
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>is_int</methodname>
+      <type>bool</type><methodname>is_int</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <simpara>
-     Questa funzione � equivalente a <function>is_long</function>.
+     Restituisce &true; se <parameter>var</parameter> � di tipo <type>integer</type>,
+     &false; in caso contrario.
     </simpara>
+    <note>
+     <para>
+      Per verificare se una variabile � un numero oppure una stringa numerica
+      (come le variabili dei form, che sono sempre stringhe) occorre usare
+      la funzione  <function>is_numeric</function>.
+     </para>
+    </note>
     <simpara>
-     Si veda anche <function>is_bool</function>,
-     <function>is_double</function>,
+     Vedere anche <function>is_bool</function>,
      <function>is_float</function>,
      <function>is_integer</function>,
+     <function>is_numeric</function>,
      <function>is_string</function>,
-     <function>is_real</function>,
-     <function>is_object</function>,
-     <function>is_array</function>, e
-     <function>is_long</function>.
+     <function>is_array</function> e
+     <function>is_object</function>.
     </simpara>
    </refsect1>
   </refentry>
@@ -297,61 +524,59 @@
   <refentry id="function.is-integer">
    <refnamediv>
     <refname>is_integer</refname>
-    <refpurpose>Verifica se una variabile � di tipo integer</refpurpose>
+    <refpurpose>Alias di <function>is_int</function></refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descrizione</title>
-     <methodsynopsis>
-      <type>int</type><methodname>is_integer</methodname>
-      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
-     </methodsynopsis>
-    <simpara>
-     Questa funzione � equivalente a
-     <function>is_long</function>.
-    </simpara>
-    <simpara>
-     Si veda anche <function>is_bool</function>,
-     <function>is_double</function>,
-     <function>is_float</function>,
-     <function>is_int</function>,
-     <function>is_string</function>,
-     <function>is_real</function>,
-     <function>is_object</function>,
-     <function>is_array</function>, e
-     <function>is_long</function>.
-    </simpara>
+    <para>
+     Questa funzione � un alias di <function>is_int</function>.
+    </para>
    </refsect1>
   </refentry>
 
   <refentry id="function.is-long">
    <refnamediv>
     <refname>is_long</refname>
-    <refpurpose>Verifica se una variabile � di tipo integer</refpurpose>
+    <refpurpose>Alias di <function>is_int</function></refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <para>
+     Questa funzione � un alias di <function>is_int</function>.
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.is-null">
+   <refnamediv>
+    <refname>is_null</refname>
+    <refpurpose>
+     Verifica se la variabile � di tipo &null;
+    </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>is_long</methodname>
+      <type>bool</type><methodname>is_null</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <para>
-     Restituisce &true; se <parameter>var</parameter> � di tipo integer (long),
+     Restituisce &true; se <parameter>var</parameter> � di tipo <type>null</type>,
      &false; in caso contrario.
     </para>
     <para>
-     Si veda anche <function>is_bool</function>,
-     <function>is_double</function>,
+     Vedere anche <function>is_bool</function>,
+     <function>is_numeric</function>,
      <function>is_float</function>,
      <function>is_int</function>,
-     <function>is_real</function>,
      <function>is_string</function>,
-     <function>is_object</function>,
-     <function>is_array</function>, e
-     <function>is_integer</function>.
+     <function>is_object</function> e
+     <function>is_array</function>.
     </para>
    </refsect1>
   </refentry>
 
+
   <refentry id="function.is-numeric">
    <refnamediv>
     <refname>is_numeric</refname>
@@ -362,21 +587,20 @@
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>is_numeric</methodname>
+      <type>bool</type><methodname>is_numeric</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <para>
-     Restituisce &true; se <parameter>var</parameter> � un numero o una stringa 
numerica, &false; in caso contrario.
+     Restituisce &true; se <parameter>var</parameter> � un numero o una stringa 
+numerica,
+     &false; in caso contrario.
     </para>
     <para>
-     Si veda anche <function>is_bool</function>,
-     <function>is_double</function>,
+     Vedere anche <function>is_bool</function>,
      <function>is_float</function>,
      <function>is_int</function>,
-     <function>is_real</function>,
      <function>is_string</function>,
      <function>is_object</function>,
-     <function>is_array</function>, e
+     <function>is_array</function> e
      <function>is_integer</function>.
     </para>
    </refsect1>
@@ -385,27 +609,24 @@
   <refentry id="function.is-object">
    <refnamediv>
     <refname>is_object</refname>
-    <refpurpose>Verifica se una variabile � un Oggetto</refpurpose>
+    <refpurpose>Verifica se una variabile � di tipo object</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>is_object</methodname>
+      <type>bool</type><methodname>is_object</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <para>
-     Restituisce &true; se <parameter>var</parameter> � un oggetto, &false;
+     Restituisce &true; se <parameter>var</parameter> � un di tipo 
+<type>object</type>, &false;
      in caso contrario.
     </para>
     <para>
-     Si veda anche <function>is_bool</function>,
-     <function>is_long</function>,
+     Vedere anche <function>is_bool</function>,
      <function>is_int</function>,
      <function>is_integer</function>,
      <function>is_float</function>,
-     <function>is_double</function>,
-     <function>is_real</function>,
-     <function>is_string</function>, e
+     <function>is_string</function>, and
      <function>is_array</function>.
     </para>
    </refsect1>
@@ -414,28 +635,13 @@
   <refentry id="function.is-real">
    <refnamediv>
     <refname>is_real</refname>
-    <refpurpose>Verifica se una variabile � di tipo real (decimale a virgola 
mobile)</refpurpose>
+    <refpurpose>Alias di <function>is_float</function></refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descrizione</title>
-     <methodsynopsis>
-      <type>int</type><methodname>is_real</methodname>
-      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
-     </methodsynopsis>
-    <simpara>
-     Questa funzione � equivalente a <function>is_double</function>.
-    </simpara>
-    <simpara>
-     Si veda anche <function>is_bool</function>,
-     <function>is_long</function>,
-     <function>is_int</function>,
-     <function>is_integer</function>,
-     <function>is_float</function>,
-     <function>is_double</function>,
-     <function>is_object</function>,
-     <function>is_string</function>, e
-     <function>is_array</function>.
-    </simpara>
+     <para>
+     Questa funzione � un alias di <function>is_float</function>.
+    </para>
    </refsect1>
   </refentry>
   
@@ -449,23 +655,99 @@
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>is_resource</methodname>
+      <type>bool</type><methodname>is_resource</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <para>
      <function>is_resource</function> restituisce &true; se la variabile
-     individuata dal parametro <parameter>var</parameter> � una risorsa, 
+     individuata dal parametro <parameter>var</parameter> � di tipo 
+<type>resource</type>, 
      altrimenti restituisce &false;.
     </para>
     <para>
-     Il termine risorse fa riferimento a cose come gli handle a un file o al 
risultato di 
-     una query su di un database. Questi handle sono normalmente allocati e liberati 
da 
-     funzioni interne di PHP ma pu� verificarsi la necessit� di ripulirle se non 
vengono 
-     pi� utilizzate ma non sono ancora state liberate dal codice del programma. 
+     Per maggiori dettagli fare riferimento alla documentazione di
+     <type>resource</type>-type
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.is-scalar">
+   <refnamediv>
+    <refname>is_scalar</refname>
+    <refpurpose>
+     Verifica se la variabile � di tipo scalare
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>is_scalar</methodname>
+      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     La funzione <function>is_scalar</function> restituisce &true; se la variabile
+     indicata dal parametro <parameter>var</parameter> � di tipo scalare,
+     in caso contrario restituisce &false;.
+    </para>
+    <para>
+     Le variabili scalari sono quelle contenenti valori di tipo <type>integer</type>, 
+     <type>float</type>, <type>string</type> oppure <type>boolean</type>.  
+     I tipi <type>array</type>, <type>object</type> e <type>resource</type> 
+     non sono scalari.
+     <informalexample>
+      <programlisting role="php">
+<!-- TODO: better example, this one can be quite misleading for unexperienced
+           programmers.  -->
+<![CDATA[
+function show_var($var) {
+    if (is_scalar($var)) {
+        echo $var;
+    } else {
+        var_dump($var);
+    }
+}
+$pi = 3.1416;
+$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");
+
+show_var($pi);
+// visualizza: 3.1416
+
+show_var($proteins)
+// visualizza:
+// array(3) {
+//   [0]=>
+//   string(10) "hemoglobin"
+//   [1]=>
+//   string(20) "cytochrome c oxidase"
+//   [2]=>
+//   string(10) "ferredoxin"
+// }
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <note>
+     <para>
+      La funzione <function>is_scalar</function> non considera il tipo 
+<type>resource</type>
+      come valore scalare, dato che il tipo <type>resource</type> � una tipologia di 
+dato astratto
+      che attualmente si basa su interi. Tuttavia non ci si pu� basare su questo
+      tipo di implementazione, in futuro potrebbe cambiare.
+     </para>
+    </note>
+    <para>
+     Vedere anche <function>is_bool</function>,
+     <function>is_numeric</function>,
+     <function>is_float</function>,
+     <function>is_int</function>,
+     <function>is_real</function>,
+     <function>is_string</function>,
+     <function>is_object</function>,
+     <function>is_array</function> e
+     <function>is_integer</function>.
     </para>
    </refsect1>
   </refentry>
 
+
   <refentry id="function.is-string">
    <refnamediv>
     <refname>is_string</refname>
@@ -474,22 +756,20 @@
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>is_string</methodname>
+      <type>bool</type><methodname>is_string</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <para>
-     Restituisce &true; se <parameter>var</parameter> � una stringa,
+     Restituisce &true; se <parameter>var</parameter> � di tipo <type>string</type>,
      &false; in caso contrario.
     </para>
     <para>
-     Si veda anche <function>is_bool</function>,
-     <function>is_long</function>,
+     Vedere anche <function>is_bool</function>,
      <function>is_int</function>,
      <function>is_integer</function>,
      <function>is_float</function>,
-     <function>is_double</function>,
      <function>is_real</function>,
-     <function>is_object</function>, e
+     <function>is_object</function> e
      <function>is_array</function>.
     </para>
    </refsect1>
@@ -503,7 +783,7 @@
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>isset</methodname>
+      <type>boolean</type><methodname>isset</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
      </methodsynopsis>
     <simpara>
@@ -511,19 +791,34 @@
      &false; in caso contrario.
     </simpara>
     <para>
-     Se una variabile � stata ripulita con <function>unset</function>,
-     non potr� essere <function>isset</function>.
+     Se una variabile � stata cancellata con <function>unset</function>,
+     non potr� essere <function>isset</function>. La funzione 
+<function>isset</function>
+     restituir� &false; se viene utilizzata per testare una variabile valorizzata
+     a &null;. Inoltre occorre notare che il byte &null; (<literal>"\0"</literal>)
+     non equivale alla costante PHP &null;.
      <informalexample>
       <programlisting role="php">
+<![CDATA[
 $a = "test";
-echo isset ($a); // true
+$b = "anothertest";
+
+echo isset ($a); // TRUE
+echo isset ($a, $b) //TRUE
+
 unset ($a);
-echo isset ($a); // false
+echo isset ($a); // FALSE
+echo isset ($a, $b); //FALSE
+
+$foo = NULL;
+print isset ($foo); // FALSE
+
+
+]]>
       </programlisting>
      </informalexample>
     </para>
     <simpara>
-     Si veda anche <function>empty</function> e
+     Vedere anche <function>empty</function> e
      <function>unset</function>.
     </simpara>
    </refsect1>
@@ -545,34 +840,147 @@
     <simpara>
      Questa funzione stampa delle informazioni sul contenuto di una variabile in un 
formato 
      facilmente leggibile. Se la variabile contiene una stringa, un intero o un 
numero decimale, 
-     il valore stesso viene visualizzato. Se la variabile contiene un vettore (array) 
i valori 
+     il valore stesso viene visualizzato. Se la variabile contiene un array i valori 
      vengono visualizzati in un formato che evidenzia le chiavi ed i relativi 
elementi. Una notazione 
      simile viene utilizzata per gli oggetti. 
     </simpara>
     <simpara>
-     Si confronti <function>print_r</function> e
-     <function>var_dump</function>.
+     Occorre ricordarsi che  <function>print_r</function> posiziona il puntatore
+     dell'array alla fine. Pertanto utilizzare <function>reset</function> per 
+     riportarsi all'inizio.
     </simpara>
+     &tip.ob-capture;
     <para>
      <informalexample>
       <programlisting role="php">
-&lt;?php
-$a = array (1, 2, array ("a", "b", "c"));
-print_r ($a);
+<![CDATA[
+<pre>
+<?php
+    $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x','y','z'));
+    print_r ($a);
 ?>
+</pre>
+]]>
       </programlisting>
      </informalexample>
     </para>
-    <warning>
-     <para>
+ <para>
+     Il precedente esempio visualizzer�:
+     <screen>
+<![CDATA[
+<pre>
+Array
+(
+    [a] => apple
+    [b] => banana
+    [c] => Array
+        (
+            [0] => x
+            [1] => y
+            [2] => z
+        )
+)
+</pre>
+]]>
+      </screen>
+     </para>
+    <note>
+     <simpara>
       Questa funzione continua all'infinito se riceve come parametro un vettore o un 
oggetto 
-      contenente una referenza diretta o indiretta a se stesso oppure contenente 
ulteriori 
+      contenente un riferimento diretto od indiretto a se stesso oppure contenente 
+ulteriori 
       vettori o oggetti che a loro volta referenziano il padre o se stessi. 
       Un caso evidente � <literal>print_r($GLOBALS)</literal>,
       in quanto <literal>$GLOBALS</literal> � a sua volta una variabile globale e in 
quanto tale 
       contiene una referenza a se stessa.
-     </para>
-    </warning>
+     </simpara>
+    </note>
+    <simpara>
+      Vedere anche <function>ob_start</function>, <function>var_dump</function>
+      e <function>var_export</function>.
+    </simpara>
+
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.serialize">
+   <refnamediv>
+    <refname>serialize</refname>
+    <refpurpose>
+     Genera una versione archiviabile del valore
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>string</type><methodname>serialize</methodname>
+      <methodparam><type>mixed</type><parameter>value</parameter></methodparam>
+     </methodsynopsis>
+    <simpara>
+     La funzione <function>serialize</function> restituisce una stringa contenente
+     un flusso di bytes rappresentante <parameter>value</parameter> che
+     possa essere archiviato ovunque.
+    </simpara>
+    <simpara>
+     Questo pu� essere utile per archiviare o passare valori senza
+     perdere il tipo e la struttura.
+    </simpara>
+   <simpara>
+    Per ottenere il valore dalla stringa serializzata, utilizzare
+    la funzione <function>unserialize</function>. La funzione 
+<function>serialize</function>
+    gestisce tutti i tipi di variabili tranne il tipo <type>resource</type>.
+    Possono essere elaborati da <function>serialize</function> array che
+    contengano riferimenti a se stessi. Saranno archiviati anche i riferimenti
+    interni agli array e ai tipi object passati a <function>serialize</function>
+   </simpara>
+   <!-- TODO
+        in 4.0.4pl1 this didn't work properly, however, there
+        been some fixes. I don't know whether this all
+        works correctly now, and if so, whether it is since 405
+        or 406
+   <note>
+    <simpara>
+     This didn't work correctly until 4.0.?
+    </simpara>
+   </note>
+   </simpara>
+   -->
+   <note>
+    <para>
+     Nella versione 3 di PHP si serializzano le propriet� dell'oggetto,
+     ma non i metodi. Nella versione 4 viene superata questa limitazione e possono
+     essere recuperati sia le propriet� sia i metodi. Per maggiori informazioni
+     vedere la sezione <link
+     linkend="language.oop.serialization">Serializzare oggetti</link> in 
+     <link linkend="language.oop">Oggetti e Classi</link>.
+    </para>
+   </note>
+    <para>
+     <example>
+      <title>Esempio di <function>serialize</function></title>
+      <programlisting role="php">
+<![CDATA[
+// L'array multi-dimensionale $session_data contiene le informazioni della sessione
+// per l'utente. Si user� serialize() per memorizzare le informazioni
+// all'interno di un database alla fine della richiesta..
+
+$conn = odbc_connect ("webdb", "php", "chicken");
+$stmt = odbc_prepare ($conn,
+      "UPDATE sessions SET data = ? WHERE id = ?");
+$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
+if (!odbc_execute ($stmt, &$sqldata)) {
+    $stmt = odbc_prepare($conn,
+     "INSERT INTO sessions (id, data) VALUES(?, ?)");
+    if (!odbc_execute($stmt, &$sqldata)) {
+    /* Qualcosa � andato storto */
+    }
+}
+]]>
+      </programlisting>
+     </example>
+    </para>
+   <para>
+    Vedere anche: <function>unserialize</function>.
+   </para>
    </refsect1>
   </refentry>
 
@@ -584,8 +992,8 @@
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>settype</methodname>
-      <methodparam><type>string</type><parameter>var</parameter></methodparam>
+      <type>bool</type><methodname>settype</methodname>
+      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
       <methodparam><type>string</type><parameter>type</parameter></methodparam>
      </methodsynopsis>
     <para>
@@ -595,18 +1003,66 @@
     <para>
      Valori possibili di <parameter>type</parameter> sono:
      <itemizedlist>
-      <listitem><simpara>"integer"</simpara></listitem>
-      <listitem><simpara>"double"</simpara></listitem>
-      <listitem><simpara>"string"</simpara></listitem>
-      <listitem><simpara>"array"</simpara></listitem>
-      <listitem><simpara>"object"</simpara></listitem>
+  <listitem>
+       <simpara>
+        "boolean" (oppure, da PHP 4.2.0, "bool")
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "integer" (uppure, da PHP 4.2.0, "int")
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "float" (soltanto a partire dalla versione 4.2.0 di PHP, per le versioni 
+precedenti usare
+        "double", deprecated)
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "string"
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "array"
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "object"
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        "null" (dalla versione PHP 4.0.8)
+       </simpara>
+      </listitem>
      </itemizedlist>
     </para>
     <para>
-     Restituisce &true; se l'operazione ha successo; in caso contrario resituisce 
&false;.
+     Restituisce &true; se l'operazione ha successo; in caso contrario 
+     resituisce &false;.
+    </para>
+   <para>
+     <example>
+      <title>Esempio di utilizzo di <function>settype</function></title>
+      <programlisting role="php">
+<![CDATA[
+$foo = "5bar"; // string
+$bar = true;   // boolean
+
+settype($foo, "integer"); // $foo ora � 5   (integer)
+settype($bar, "string");  // $bar ora � "1" (string)
+]]>
+      </programlisting>
+     </example>
     </para>
     <para>
-     Si veda anche <function>gettype</function>.
+     Vedere anche <function>gettype</function>,
+     <link linkend="language.types.typecasting">Casting del tipo</link> e
+     <link linkend="language.types.type-juggling">Manipolazione del tipo</link>.
     </para>
    </refsect1>
   </refentry>
@@ -624,46 +1080,275 @@
      </methodsynopsis>
     <simpara>
      Restituisce il valore di <parameter>var</parameter> interpretato come stringa.
+     Per maggiori informazioni sulla conversione a stringa, vedere la documentazione 
+     relativa alle variabili di tipo <type>string</type>.
     </simpara>
     <simpara>
      <parameter>var</parameter> pu� essere una qualsiasi variabile scalare. Non � 
possibile usare
      <function>strval</function> con array o oggetti.
     </simpara>
     <simpara>
-     Si veda anche <function>doubleval</function>,
+     Vedere anche <function>floatval</function>,
      <function>intval</function>, <function>settype</function> e
-     <link linkend="language.types.type-juggling">Type
-     juggling</link>.
+     <link linkend="language.types.type-juggling">Manipolazione del 
+     tipo</link>.
     </simpara>
    </refsect1>
   </refentry>
 
+
+  <refentry id="function.unserialize">
+   <refnamediv>
+    <refname>unserialize</refname>
+    <refpurpose>
+     Crea un valore PHP a partire da una rappresentazione archiviata
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>mixed</type><methodname>unserialize</methodname>
+      <methodparam><type>string</type><parameter>str</parameter></methodparam>
+     </methodsynopsis>
+    <simpara>
+     La funzione <function>unserialize</function> prende il formato serializzato di
+     una variabile (vedere <function>serialize</function>) e la riporta
+     a valore PHP. La funzione restituisce il valore ottenuto, che pu� essere
+     di tipo <type>integer</type>, <type>float</type>,
+     <type>string</type>, <type>array</type> oppure <type>object</type>.
+     Se � stato serializzato un oggetto, il valore restituito non conserva
+     i metodi.
+    </simpara>
+    <note>
+     <para>
+      E' possibile impostare una funzione di callback che possa essere richiamata
+      se, durante la fase di deserializzazione, occorre istanziare una classe 
+indefinita.
+      (per evitare di ottenere un tipo <type>object</type> incompleto 
+"__PHP_Incomplete_Class".)
+      Per definire il parametro 'unserialize_callback_func' si pu� agire sul
+      php.ini, o usare <function>ini_set</function> oppure con .htaccess-file 
+      Verr�  utilizzata questa funzione ogni volta che occorre istanziare una classe 
+indefinita.
+      Per disabilitare questa opzione, lasciare vuota questa variabile globale.
+     </para>
+    </note>
+    <para>
+     <example>
+      <title>Esempio di unserialize_callback_func</title>
+      <programlisting role="php">
+<![CDATA[
+$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';
+
+ini_set('unserialize_callback_func','mycallback'); // imposta la funzione di callback
+
+function mycallback($classname) {
+    // semplicemente include un file contenente la definizione della classe
+    // la variabile $classname indica di quale classe occorre la definizione
+}
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <note>
+     <para>
+      Nella versione 3 di PHP, i metodi non erano preservati durante la fase di 
+deserializzazione
+      di un oggetto. In PHP 4 questo limite � stato superato e possono essere 
+      recuperati sia metodi sia propriet�. Per maggiori informazioni 
+      vedere la sezione <link
+      linkend="language.oop.serialization">Serializzare oggetti</link> in 
+      <link linkend="language.oop">Classi e oggetti</link>
+     </para>
+    </note>
+    <para>
+     <example>
+      <title>Esempio di uso di <function>unserialize</function></title>
+      <programlisting role="php">
+<![CDATA[
+// In quest esempio si usa unserialize() per caricare i dati di una sessione da un 
+database
+// alla variabile $session_data. Questo esempio � complementare a quello illustrato
+// nella funzione <function>serialize</function>.
+
+
+$conn = odbc_connect ("webdb", "php", "chicken");
+$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?");
+$sqldata = array ($PHP_AUTH_USER);
+if (!odbc_execute ($stmt, &$sqldata) || !odbc_fetch_into ($stmt, &$tmp)) {
+    // se odbc_execute o odbc_fetch_into hanno un errore si predispone un array vuoto
+    $session_data = array();
+} else {
+    // ora abbiamo i dati serializzati in $tmp[0].
+    $session_data = unserialize ($tmp[0]);
+    if (!is_array ($session_data)) {
+    // qualcosa � andato storto, si predispone un array vuoto
+    $session_data = array();
+    }
+}
+]]>
+      </programlisting>
+     </example>
+    </para>
+   <para>
+    Vedere anche: <function>serialize</function>.
+   </para>
+   </refsect1>
+  </refentry>
+
   <refentry id="function.unset">
    <refnamediv>
     <refname>unset</refname>
-    <refpurpose>Dereferenzia (elimina)  una variabile</refpurpose>
+    <refpurpose>Cancella una data variabile</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Descrizione</title>
      <methodsynopsis>
-      <type>int</type><methodname>unset</methodname>
+      <type>void</type><methodname>unset</methodname>
       <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>mixed</type><parameter>var</parameter></methodparam>
+      <methodparam choice="opt"><parameter>...</parameter></methodparam>
      </methodsynopsis>
     <para>
-     <function>unset</function> distrugge la variabile specificata e restituisce
-      &true;.
+     <function>unset</function> distrugge la variabile specificata. Occorre
+     notare che in PHP 4 la funzione <function>unset</function> restituiva sempre 
+&true;
+     (in realt� era il valore 1). In PHP 4, invece, la funzione 
+     <function>unset</function> non � pi� una vera funzione, ora � una
+     istruzione. In questa veste non ritorna alcun valore, e cercare di ottenere
+     un valore dalla funzione <function>unset</function> produce un errore
+     di parsing.
     </para>
     <para>
      <example>
       <title>Esempio di <function>unset</function></title>
       <programlisting role="php">
+<![CDATA[
+// Distrugge una singola variabile
 unset ($foo);
+
+// distrugge un singolo elemento di un array
 unset ($bar['quux']);
+
+// distrugge pi� di una variabile
+unset ($foo1, $foo2, $foo3);
+]]>
       </programlisting>
      </example>
     </para>
     <para>
-     Si veda anche <function>isset</function> e
+     Il comportamento di <function>unset</function> all'interno di una funzione
+     pu� variare in funzione del tipo di variabile che si intende
+     distruggere.
+    </para>
+    <para>
+     Se si applica <function>unset</function> ad una variabile globale all'interno
+     di una funzione, sar� distrutta solo la variabile locale. Nell'ambiente 
+     chiamante, la variabile manterr� il medesimo valore che aveva prima dell'uso 
+     di <function>unset</function>.
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+function destroy_foo() {
+    global $foo;
+    unset($foo);
+}
+
+$foo = 'bar';
+destroy_foo();
+echo $foo;
+]]>
+      </programlisting>
+     </informalexample>
+     L'esempio precedente visualizzer�:
+     <informalexample>
+      <screen>
+<![CDATA[
+bar
+]]>
+      </screen>
+     </informalexample>
+    </para>
+    <para>
+     Nel caso di una variabile PASSATA PER RIFERIMENTO ad una funzione, 
+     l'uso della funzione <function>unset</function> distrugge solo la copia
+     locale della variabile. Nell'ambiente chiamante, la variabile manterr�
+     il medesimo valore che aveva prima dell'uso 
+     di <function>unset</function>.
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+function foo(&$bar) {
+    unset($bar);
+    $bar = "blah";
+}
+
+$bar = 'something';
+echo "$bar\n";
+
+foo($bar);
+echo "$bar\n";
+]]>
+      </programlisting>
+     </informalexample>
+     Il precedente esempio visualizzer�:
+     <informalexample>
+      <screen>
+<![CDATA[
+something
+something
+]]>
+      </screen>
+     </informalexample>
+    </para>
+    <para>
+     Se si usa <function>unset</function> su una variabile statica all'interno
+     di una funzione, <function>unset</function> cancella la variabile e tutti
+     i suoi riferimenti.
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+function foo() {
+    static $a;
+    $a++;
+       echo "$a\n";
+
+    unset($a);
+}
+
+foo();
+foo();
+foo();
+]]>
+      </programlisting>
+     </informalexample>
+     L'esempio precedente visualizzer�:
+     <informalexample>
+      <screen>
+<![CDATA[
+1
+2
+3
+]]>
+      </screen>
+     </informalexample>
+    </para>
+    <para>
+     Se si desidera cancellare una variabile globale dall'interno di una funzione, 
+occorre usare <function>unset</function> sull'array <parameter>$GLOBALS</parameter> 
+nel seguente modo:
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+function foo() {
+    unset($GLOBALS['bar']);
+}
+
+$bar = "something";
+foo();
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <note>
+     <para>
+      La funzione <function>unset</function> � un costrutto del linguaggio.
+     </para>
+    </note>
+    <para>
+     Vedere anche <function>isset</function> e
      <function>empty</function>.
     </para>
    </refsect1>
@@ -679,12 +1364,15 @@
      <methodsynopsis>
       <type>void</type><methodname>var_dump</methodname>
       <methodparam><type>mixed</type><parameter>expression</parameter></methodparam>
-     </methodsynopsis>
+      <methodparam 
+choice="opt"><type>mixed</type><parameter>expression</parameter></methodparam>
+      <methodparam choice="opt"><parameter>...</parameter></methodparam>
+    </methodsynopsis>
     <simpara>
      Questa funzione restituisce delle informazioni strutturate riguardanti una 
espressione, 
-     tra cui il suo tipo e il suo valore. I vettori (array) sono attraversati in 
maniera 
+     tra cui il suo tipo e il suo valore. Gli array sono attraversati in maniera 
      ricorsiva e i valori indentati per evidenziare la struttura.
     </simpara>
+    &tip.ob-capture;
     <simpara>
      Si confronti <function>var_dump</function> con
      <function>print_r</function>.
@@ -692,18 +1380,133 @@
     <para>
      <informalexample>
       <programlisting role="php">
-&lt;pre>
-&lt;?php
-    $a = array (1, 2, array ("a", "b", "c"));
-    var_dump ($a);
+<![CDATA[
+<pre>
+<?php
+$a = array (1, 2, array ("a", "b", "c"));
+var_dump ($a);
+
+/* output:
+array(3) {
+  [0]=>
+  int(1)
+  [1]=>
+  int(2)
+  [2]=>
+  array(3) {
+    [0]=>
+    string(1) "a"
+    [1]=>
+    string(1) "b"
+    [2]=>
+    string(1) "c"
+  }
+}
+
+*/
+
+$b = 3.1; $c = TRUE;
+var_dump($b,$c);
+
+/* output:
+float(3.1)
+bool(true)
+
+*/
+?>;
+</pre>
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.var-export">
+   <refnamediv>
+    <refname>var_export</refname>
+    <refpurpose>Visualizza o restituisce una variabile in formato stringa</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>mixed</type><methodname>var_export</methodname>
+      <methodparam><type>mixed</type><parameter>expression</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>bool</type><parameter>return</parameter></methodparam>
+     </methodsynopsis>
+    <simpara>
+     Questa funzione restituisce informazioni strutturate sulla variabile che 
+     viene passata. Il comportamento � simile a <function>var_dump</function>
+     con la sola differenza che il valore restituito � codice PHP.
+    </simpara>
+    <simpara>
+     Si pu� anche ottenere la rappresentazione della variabile usando &true;
+     come secondo parametro della funzione.
+    </simpara>
+    <simpara>
+     Confrontare <function>var_export</function> con
+     <function>var_dump</function>.
+    </simpara>
+    <para>
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+<pre>
+<?php
+$a = array (1, 2, array ("a", "b", "c"));
+var_export ($a);
+
+/* output:
+array (
+  0 => 1,
+  1 => 2,
+  2 => 
+  array (
+    0 => 'a',
+    1 => 'b',
+    2 => 'c',
+  ),
+)
+*/
+
+$b = 3.1;
+$v = var_export($b, TRUE);
+echo $v;
+
+/* output:
+3.1
+*/
 ?>
-&lt;/pre>
+</pre>
+]]>
       </programlisting>
      </informalexample>
     </para>
    </refsect1>
   </refentry>
 
+  <refentry id='function.is-callable'>
+   <refnamediv>
+    <refname>is_callable</refname>
+    <refpurpose>
+     Verifica se l'argomento � un valido costrutto richiamabile.
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+     <methodsynopsis>
+      <type>bool</type><methodname>is_callable</methodname>
+      <methodparam><type>mixed</type><parameter>var</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>bool</type><parameter>syntax_only</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>string</type><parameter>callable_name</parameter></methodparam>
+     </methodsynopsis>
+    <para>
+     &warn.undocumented.func;
+    </para>
+   </refsect1>
+  </refentry>
+  
+
  </reference>
 
 <!-- Keep this comment at the end of the file
@@ -726,4 +1529,3 @@
 vim: et tw=78 syn=sgml
 vi: ts=1 sw=1
 -->
-


Reply via email to