cortesi         Tue Mar 26 22:17:51 2002 EDT

  Added files:                 
    /phpdoc/it/functions        overload.xml 
  Log:
  adding translation by curcio_it
  

Index: phpdoc/it/functions/overload.xml
+++ phpdoc/it/functions/overload.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.6 Maintainer: curcio_it Status: ready -->
 <reference id="ref.overload">
  <title>Propriet� object e method call overloading</title>
  <titleabbrev>Overloading degli object</titleabbrev>

  <partintro id="overload.partintro">
   &warn.experimental;
   <para>
    Lo scopo di questa estensione � di permettere l'overloading delle propriet�
    di accesso agli oggetti e dei metodi di chiamata. Solo una funzione � definita
    in questa estensione, <function>overload</function> che prende il
    nome dalla classe che ha questa funzionalit� abilitata.
    La classe nominata ha da definire metodi appropriati se
    vuole avere questa funzionalit�: <literal>__get()</literal>,
    <literal>__set()</literal> and <literal>__call()</literal>
    rispettivamente per ricevere/impostare una propriet�, o chiamare un metodo.
    Questa strada del sovraccarico pu� essere selettiva. Dentro queste
    funzioni handler l'overloading � disabilitato cos� si pu� accedere
    alle propriet� dell'oggetto normalmente.
   </para>
   <para>
    Alcuni semplici esempi sull'uso della funzione 
    <function>overload</function>
    <example>
     <title>Overloading di una classe PHP</title>
     <programlisting role="php">
<![CDATA[
<?php

class OO
{
    var $a = 111;
    var $elem = array('b' => 9, 'c' => 42);

    // Callback method for getting a property
    function __get($prop_name, &$prop_value)
    {
        if (isset($this->elem[$prop_name])) {
            $prop_value = $this->elem[$prop_name];
            return true;
        } else {
            return false;
        }
    }

    // Callback method for setting a property
    function __set($prop_name, $prop_value)
    {
        $this->elem[$prop_name] = $prop_value;
        return true;
    }
}

// Here we overload the OO object
overload('OO');

$o = new OO;
print "\$o->a: $o->a\n"; // print: $o->a:
print "\$o->b: $o->b\n"; // print: $o->b: 9
print "\$o->c: $o->c\n"; // print: $o->c: 42
print "\$o->d: $o->d\n"; // print: $o->d:

// add a new item to the $elem array in OO
$o->x = 56; 

// instantiate stdclass (it is built-in in PHP 4)
// $val is not overloaded!
$val = new stdclass;
$val->prop = 555;

// Set "a" to be an array with the $val object in it
// But __set() will put this in the $elem array
$o->a = array($val);
var_dump($o->a[0]->prop);

?>
]]>
     </programlisting>
    </example>
   </para>
   <warning>
    <para>
     Siccome � una estensione sperimentale, non tutto
     funziona. Non c'� attualmente il supporto per 
     <literal>__call()</literal>, 
     puoi solo overloadare le operazioni di ricezione e di impostazione
     per le propriet�. Non puoi invocare l'overloading 
     handlers originale della classe, e
     <literal>__set()</literal> funziona solo su un livello
     di propriet� di accesso.
    </para>
   </warning>
  </partintro>

  <refentry id="function.overload">
   <refnamediv>
    <refname>overload</refname>
    <refpurpose>Abilita le propriet� e il method call overloading per una 
classe</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Descrizione</title>
     <methodsynopsis>
      <type>void</type><methodname>overload</methodname>
      <methodparam 
choice="opt"><type>string</type><parameter>class_name</parameter></methodparam>
     </methodsynopsis>
    <para>
     La funzione <function>overload</function> abiliter�
     la propriet� e il method call overloading per una classe identificata
     dal parametro <parameter>class_name</parameter>.
     <link linkend="overload.partintro">Guarda un esempio
     nella sezione di introduzione di questa parte.</link>.
    </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