cvs: phpdoc /it/functions var.xml

From: Date: Thu, 28 Mar 2002 13:27:53 +0000
Subject: cvs: phpdoc /it/functions var.xml
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969343664@lists.php.net to get a copy of this message
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 --> -
« previous php.doc (#969343664) next »