cortesi         Tue Jan 15 11:07:01 2002 EDT

  Modified files:              
    /phpdoc/it/functions        classobj.xml 
  Log:
  commiting italian translation by
  Darvin Andrioli up to EN 1.32
  
  
Index: phpdoc/it/functions/classobj.xml
diff -u /dev/null phpdoc/it/functions/classobj.xml:1.9
--- /dev/null   Tue Jan 15 11:07:01 2002
+++ phpdoc/it/functions/classobj.xml    Tue Jan 15 11:07:01 2002
@@ -0,0 +1,725 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- EN-Revision: 1.32 Maintainer: Darvin  Status: ready -->
+ <reference id="ref.classobj">
+  <title>Funzioni per Classi/Oggetti </title>
+  <titleabbrev>Classi/Oggetti</titleabbrev>
+
+  <partintro>
+   <sect1 id="classobj.partintro">
+    <title>Introduzione</title>
+    <sect2 id="classobj.intro">
+    <title>Obiettivo</title>
+     <para>
+      Queste funzioni permettono di ottenere informazioni sulle classi 
+      e sulle istanze degli oggetti. Si può ricavare il nome della
+      classe da cui deriva un dato oggetto, come le sue proprietà e i 
+      suoi metodi. Utilizzando queste funzioni si ottiene, non solo a 
+      quale classe appartiene un dato oggetto, ma anche i suoi "padri"
+      (ad esempio da quale classe è derivata la classe dell'oggetto).
+     </para>
+    </sect2>
+    <sect2 id="classobj.example">
+     <title>Esempio di utilizzo</title>
+     <para>
+      In questo esempio, prima si definisce una classe base, quindi una 
+      seconda che deriva dalla prima. La classe base descrive gli aspetti
+      generali degli ortaggi, se è commestibile e quale sia il colore. La
+      classe derivata <varname>Spinaci</varname> aggiunge i metodi di 
+      cottura e di verifica della completa cottura.
+     </para>
+     <para>
+      <example>
+       <title>classi.inc</title>
+       <programlisting role="php">
+<![CDATA[
+<?php
+
+// classe base con proprietà e metodi
+class Ortaggio {
+
+    var $commestibile;
+    var $colore;
+
+    function Ortaggio( $commestibile, $colore="verde" ) {
+        $this->commestibile = $commestibile;
+        $this->colore = $colore;
+    }
+
+    function e_commestibile() {
+        return $this->commestibile;
+    }
+
+    function che_colore_ha() {
+        return $this->colore;
+    }
+    
+} // Fine della classe ortaggio
+
+
+// Estensione della classe base
+class Spinaci extends Ortaggio {
+
+    var $cotto = false;
+
+    function Spinaci() {
+        $this->Ortaggio( true, "verde" );
+    }
+
+    function cuocilo() {
+        $this->cotto = true;
+    }
+
+    function e_cotto() {
+        return $this->cotto;
+    }
+    
+} // Fine della classe spinaci
+
+?>
+]]>
+       </programlisting>
+      </example>
+     </para>
+     <para>
+     A questo punto si istanziano 2 oggetti a partire da queste classi
+     e si visualizzeranno le informazioni relative a questi oggetti, compresi
+     i loro padri. Verranno anche inserite funzioni di utilità
+     principalmente con lo scopo di rendere chiara la visualizzazione delle
+     variabili.
+     </para>
+     <para>
+      <example>
+       <title>test_script.php</title>
+       <programlisting role="php">
+<![CDATA[
+<pre>
+<?php
+
+include "classi.inc";
+
+// Funzioni di utilità
+
+function visualizza_var($oggetto) {
+    $matrice = get_object_vars($oggetto);
+    while (list($prop, $val) = each($matrice))
+        echo "\t$prop = $val\n";
+}
+
+function visualiazza_metodi($oggetto) {
+    $matrice = get_class_methods(get_class($oggetto));
+    foreach ($matrice as $metodo)
+        echo "\tfunzione $metodo()\n";
+}
+
+function padri_classe($oggetto, $classe) {
+    global $$oggetto;
+    if (is_subclass_of($$oggetto, $classe)) {
+        echo "Oggetto $oggetto appartiene alla classe ".get_class($$oggetto);
+        echo " derivata da $classe\n";
+    } else {
+        echo "Oggetto $oggetto non deriva da una sottoclasse di $classe\n";
+    }
+}
+
+// Istanzia 2 oggetti
+
+$pomodoro = new Ortaggio(true,"rosso");
+$frondoso = new Spinaci();
+
+// Visualizza le informazioni sugli oggetti
+echo "pomodoro: CLASSE ".get_class($pomodoro)."\n";
+echo "frondoso: CLASSE ".get_class($frondoso);
+echo ", PADRE ".get_parent_class($frondoso)."\n";
+
+// visualizza le proprietà di pomodoro
+echo "\npomodoro: Proprietà\n";
+visualizza_var($pomodoro);
+
+// e i metodi di frondoso
+echo "\nfrondoso: Metodi\n";
+visualizza_metodi($frondoso);
+
+echo "\nPadri:\n";
+padri_classe("frondoso", "Spinaci");
+padri_classe("frondoso", "Ortaggio");
+?>
+</pre>
+]]>
+       </programlisting>
+      </example>
+     </para>
+     <para>
+      Un'aspetto da notare nell'esempio precedente è che l'oggetto
+      <varname>$frondoso</varname> è un'istanza della classe <classname>
+      Spinaci</classname> che a sua volta è una sottoclasse di
+      <classname>Ortaggio</classname>, quindi l'ultima parte dell'esempio
+      visualizzerà:
+     </para>
+     <para>
+      <informalexample>
+       <programlisting>
+<![CDATA[
+       [...]
+Padri:
+Oggetto frondoso non deriva da una sottoclasse di Spinaci
+Oggetto frondoso appartiene alla classe spinaci derivata da Ortaggio
+]]>
+       </programlisting>
+      </informalexample>
+     </para>
+    </sect2>
+   </sect1>
+  </partintro>
+   
+  <refentry id="function.call-user-method-array">
+   <refnamediv>
+    <refname>call_user_method_array</refname>
+    <refpurpose>
+     Richiama il metodo dato con un array di parametri
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>misto 
+       <function>call_user_method_array</function>
+      </funcdef>
+      <paramdef>stringa 
+       <parameter>nome_metodo</parameter>
+      </paramdef>
+      <paramdef>oggetto 
+       <parameter>oggetto</parameter>
+      </paramdef>
+      <paramdef>array 
+       <parameter><optional>array_parametri</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Richiama il metodo indicato da <parameter>nome_metodo</parameter> 
+     dell'oggetto <parameter>oggetto</parameter>, utilizzando i parametri 
+     forniti in <parameter>array_parametri</parameter>.
+    </para>
+    <para>
+     Vedere anche:
+     <function>call_user_func_array</function>,
+     <function>call_user_func</function>,
+     <function>call_user_method</function>.
+    </para>
+    <note>
+     <para>
+      Questa funzione è stata aggiunta al codice CVS dopo la release 4.0.4pl1 di PHP
+     </para>
+    </note>
+   </refsect1>
+  </refentry>
+ 
+  <refentry id="function.call-user-method">
+   <refnamediv>
+    <refname>call_user_method</refname>
+    <refpurpose>
+     Chiama un metodo dell'oggetto indicato
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>misto 
+       <function>call_user_method</function>
+      </funcdef>
+      <paramdef>stringa
+       <parameter>nome_metodo</parameter>
+      </paramdef>
+      <paramdef>oggetto 
+       <parameter>oggetto</parameter>
+      </paramdef>
+      <paramdef>misto 
+       <parameter><optional>parametro</optional></parameter>
+      </paramdef>
+      <paramdef>misto
+       <parameter><optional>...</optional></parameter>
+      </paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Richiama il metodo indicato da <parameter>nome_metodo</parameter> 
+     dell'oggetto <parameter>oggetto</parameter>. Di seguito si fornisce
+     un esempio di utilizzo. Qui si definisce una classe, si istanzia un 
+     oggetto, e si utilizza <function>call_user_method</function> per 
+     richiamare il metodo <varname>stampa_info</varname>
+     <informalexample>
+      <programlisting role="php">
+<![CDATA[
+<?php
+class Stato {
+    var $NOME;
+    var $TLD;
+    
+    function Stato($nome, $tld) {
+        $this->NOME = $nome;
+        $this->TLD = $tld;
+    }
+
+    function stampa_info($prestr="") {
+        echo $prestr."Stato: ".$this->NOME."\n";
+        echo $prestr."Dominio di primo livello: ".$this->TLD."\n";
+    }
+}
+
+$paese = new Stato("Peru","pe");
+
+echo "* Richiamo il metodo direttamente\n";
+$paese->stampa_info();
+
+echo "\n* utilizzo dello stesso metodo in modo indiretto\n";
+call_user_method("stampa_info", $paese, "\t");
+?>
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <simpara>
+     Vedere anche <function>call_user_func_array</function>,
+     <function>call_user_func</function>,
+     <function>call_user_method_array</function>.
+    </simpara>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.class-exists">
+   <refnamediv>
+    <refname>class_exists</refname>
+    <refpurpose>Verifica se una classe è stata definita</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>bool <function>class_exists</function></funcdef>
+      <paramdef>stringa <parameter>nome_classe</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa classe restituisce &true; se la classe indicata dal
+     parametro <parameter>nome_classe</parameter> è stata 
+     definita, altrimenti restituisce &false; .
+    </para>
+   </refsect1>
+  </refentry>
+
+
+  <refentry id="function.get-class">
+   <refnamediv>
+    <refname>get_class</refname>
+    <refpurpose>Restituisce il nome della classe di un oggetto</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>stringa <function>get_class</function></funcdef>
+      <paramdef>oggetto <parameter>oggetto</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione restituisce il nome della classe di cui
+     l'oggetto <parameter>oggetto</parameter> è un'istanza.
+     Restituisce &false; se <parameter>oggetto</parameter> non è
+     un oggetto.
+    </para>
+    <note>
+     <simpara>
+      <function>get_class</function> restituisce il nome delle classi
+      definite dagli utenti in minuscolo. Viceversa le classi definite
+      nelle estensioni di PHP sono restituite nella notazione originale.
+     </simpara>
+    </note>
+    <simpara>
+     Vedere anche <function>get_parent_class</function>,
+     <function>get_type</function>, e 
+     <function>is_subclass_of</function>
+    </simpara>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.get-class-methods">
+   <refnamediv>
+    <refname>get_class_methods</refname>
+    <refpurpose>Restituisce un array con i nomi dei metodi della classe</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>get_class_methods</function></funcdef>
+      <paramdef>stringa <parameter>nome_classe</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione restituisce un array contenente i nomi dei metodi
+     definiti per la classe specificata da <parameter>nome_classe</parameter>.
+    </para>
+    <note>
+     <para>
+      Dalla versione 4.0.6 di PHP, si può specificare direttamente
+      l'oggetto anziché la classe nel parametro <parameter>nome_classe
+      </parameter>. Ad esempio:
+      <informalexample>
+       <programlisting>
+<![CDATA[
+$metodi_della_classe = get_class_methods($mia_classe);
+]]>
+       </programlisting>
+      </informalexample>
+     </para>
+    </note>
+    <para>
+     <example>
+      <title><function>get_class_methods</function> esempio</title> 
+      <programlisting role="php">
+<![CDATA[
+<?php
+
+class miaclasse {
+    // costruttore
+    function miaclasse() {
+        return(true);
+    }
+    
+    // metodo 1
+    function funzione1() {
+        return(true);
+    }
+
+    // metodo 2
+    function funzione2() {
+        return(true);
+    }
+}
+
+$mia_classe = new miaclasse();
+
+$metodi = get_class_methods(get_class($mia_classe));
+
+foreach ($metodi as $nome_metodo) {
+    echo "$nome_metodo\n";
+}
+
+?>      
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     Produrrà:
+     <informalexample>
+      <programlisting>
+<![CDATA[
+miaclasse
+funzione1
+funzione2
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <simpara>
+     Vedere anche <function>get_class_vars</function>,
+     <function>get_object_vars</function>
+    </simpara>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.get-class-vars">
+   <refnamediv>
+    <refname>get_class_vars</refname>
+    <refpurpose>
+     Restituisce un array con le proprietà di default della classe
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>get_class_vars</function></funcdef>
+      <paramdef>stringa <parameter>nome_classe</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione restituisce un array associativo contenente
+     le proprietà di default della classe. Gli elementi dell'array
+     prodotto sono nel formato <parameter>nomevariabile => valore</parameter>.
+    </para>
+    <note>
+     <para>
+      Le variabili della classe non inizializzate non sono 
+      elencate da <function>get_class_vars</function>. 
+     </para>
+    </note>
+    <para>
+     <example>
+      <title><function>get_class_vars</function> esempio</title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+
+class miaclasse {
+
+    var $var1; // questa variabile non ha un valore di default...
+    var $var2 = "xyz";
+    var $var3 = 100;
+    
+    // costruttore
+    function miaclasse() {
+        return(true);
+    }
+
+}
+
+$mia_classe = new miaclasse();
+
+$variabili = get_class_vars(get_class($mia_classe));
+
+foreach ($variabili as $nome => $valore) {
+    echo "$nome : $valore\n";
+}
+
+?>      
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     Produrrà:
+     <informalexample>
+      <programlisting>
+<![CDATA[
+var2 : xyz
+var3 : 100
+]]>
+      </programlisting>
+     </informalexample>
+    </para>
+    <simpara>
+     Vedere anche <function>get_class_methods</function>,
+     <function>get_object_vars</function>
+    </simpara>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.get-declared-classes">
+   <refnamediv>
+    <refname>get_declared_classes</refname>
+    <refpurpose>Restituisce un array con il nome delle classi definite</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>get_declared_classes</function></funcdef>
+      <void/>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione restituisce un array con i nomi delle classi definite
+     all'interno dello script corrente.
+    </para>
+    <note>
+     <para>
+      Nella versione 4.0.1pl2 di PHP, in testa all'array erano indicate
+      tre ulteriori classi:
+      <classname>stdClass</classname> (definita in 
+      <filename>Zend/zend.c</filename>),
+      <classname>OverloadedTestClass</classname> (definita in
+      <filename>ext/standard/basic_functions.c</filename>) 
+      e <classname>Directory</classname>
+      (definita in <filename>ext/standard/dir.c</filename>).
+     </para>
+     <para>
+      Occorre notare che, in base a quali librerie sono state compilate
+      in PHP, possono essere rilevate ulteriori classi
+     </para>
+    </note>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.get-object-vars">
+   <refnamediv>
+    <refname>get_object_vars</refname>
+    <refpurpose>Restituisce un array associativo con le proprietà 
+dell'oggetto</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>array <function>get_object_vars</function></funcdef>
+      <paramdef>oggetto <parameter>oggetto</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione restituisce un array associativo con le proprietà
+     definite nell'oggetto passato nel parametro <parameter>oggetto
+     </parameter>.Le variabili, dichiarate nella classe di cui 
+     <parameter>oggetto</parameter> è un'istanza, a cui non sia stato 
+     ancora assegnato un valore, non saranno restituite nell'array.
+     <example>
+      <title>Utilizzo di <function>get_object_vars</function></title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+class Point2D {
+    var $x, $y;
+    var $etichetta;
+
+    function Point2D($x, $y) {
+        $this->x = $x;
+        $this->y = $y;
+    }
+
+    function setetichetta($etichetta) {
+        $this->etichetta = $etichetta;
+    }
+
+    function getPoint() {
+        return array("x" => $this->x,
+                     "y" => $this->y,
+                     "etichetta" => $this->etichetta);
+    }
+}
+
+$p1 = new Point2D(1.233, 3.445);
+print_r(get_object_vars($p1));
+// "$etichetta" è dichiarata ma non definita
+// Array
+// (
+//     [x] => 1.233
+//     [y] => 3.445
+// )
+
+$p1->setetichetta("point #1");
+print_r(get_object_vars($p1));
+// Array
+// (
+//     [x] => 1.233
+//     [y] => 3.445
+//     [etichetta] => point #1
+// )
+
+?>
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <simpara>
+     Vedere anche <function>get_class_methods</function>,
+     <function>get_class_vars</function>
+    </simpara>
+   </refsect1>
+  </refentry>
+
+  <refentry id="function.get-parent-class">
+   <refnamediv>
+    <refname>get_parent_class</refname>
+    <refpurpose>Restituisce il nome della classe genitrice di un oggetto 
+    o di una classe</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>stringa <function>get_parent_class</function></funcdef>
+      <paramdef>misto <parameter>oggetto</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Se <parameter>oggetto</parameter> è un oggetto, la funzione 
+     restituisce il nome del genitore della classe di cui 
+     <parameter>oggetto</parameter> è un'istanza.
+    </para>
+    <para>
+     Se <parameter>oggetto</parameter> è una stringa, la funzione 
+     restituisce il nome della classe genitrice della classe di 
+     cui <parameter>oggetto</parameter> indica il nome. Questa 
+     funzionalità è stata aggiunta nella versione 4.0.5 di PHP.
+    </para>
+    <simpara>
+     Vedere anche <function>get_class</function>,
+     <function>is_subclass_of</function>
+    </simpara>
+   </refsect1>
+  </refentry>
+
+ <refentry id="function.is-subclass-of">
+   <refnamediv>
+    <refname>is_subclass_of</refname>
+    <refpurpose>
+     Determina se un oggetto appartiene ad una
+     sottoclasse della classe specificata
+    </refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>bool <function>is_subclass_of</function></funcdef>
+      <paramdef>oggetto <parameter>oggetto</parameter></paramdef>
+      <paramdef>stringa <parameter>superclasse</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione restituisce &true; se <parameter>obj</parameter>,
+     appartiene ad una sottoclasse di <parameter>superclasse</parameter>,
+     altrimenti &false;.
+    </para>
+    <simpara>
+     Vedere anche <function>get_class</function>,
+     <function>get_parent_class</function>
+    </simpara>
+   </refsect1>
+  </refentry>
+  <refentry id="function.method-exists">
+   <refnamediv>
+    <refname>method_exists</refname>
+    <refpurpose>Verifica se il metodo esiste nella classe</refpurpose>
+   </refnamediv>
+   <refsect1>
+    <title>Descrizione</title>
+    <funcsynopsis>
+     <funcprototype>
+      <funcdef>bool <function>method_exists</function></funcdef>
+      <paramdef>oggetto <parameter>object</parameter></paramdef>
+      <paramdef>stringa <parameter>nome_metodo</parameter></paramdef>
+     </funcprototype>
+    </funcsynopsis>
+    <para>
+     Questa funzione restituisce &true; se il metodo indicato
+     dal parametro <parameter>nome_metodo</parameter> è stato
+     nell'oggetto indicato da <parameter>oggetto</parameter>,
+     altrimenti &false;.
+    </para>
+   </refsect1>
+  </refentry>
+
+ </reference>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->


Reply via email to