Utilizzo Clone

Ciao a tutti,

  non sono riuscito molto a capire il funzionamento di questo metodo per la copia(clonazione) di un oggetto:

utilizzandolo con oggetti semplici, ovvero con attributi semplici, non ci sono problemi. ma nel qual caso si utilizza come attributo(privato o meno) un array(nel mio caso č dinamico, cioč di dimensione determinata in fase di construct) mi da il seguente warning:

Warning: __clone method called on non-object in

e non mi viene istanziato l'oggetto clone.

Sapete di quale errore si tratta?

Grazie

Andrea Meriggioli

inviato 9 anni fa
cybaSsh
X 0 X

riporta il codice

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

tout de suit monsieur,

class Iiscrizione{
   private $campi =array();
   //COSTRUTTORE
   //inizializza i valori d'iscrione per la matricola inserita presa dalla tabella ISCRIZIONI
   public function __construct($recRif){
      $i=0;
      $numOfArgs=func_num_args();
      if ($numOfArgs<>0){
         while (list($chiave,$valore)=each($recRif)){
            $this->campi[$chiave]=$valore;
            //echo "$chiave corrisponde a => " . $this->campi[$chiave] ."<br />" ;
            $i++;
            //echo "<br />";
         }
      }
   }

Etc...ci sono altri metodi pubblici per estrarre i dati dall'attributo array... niente di particolare

dalla pagina chiamante dopčo la connessione ed operazioni non importanti:

$recMatr=oci_fetch_array($stmIscr1, OCI_ASSOC + OCI_RETURN_NULLS);
$IscMatr=new Iiscrizione($recMatr);

if (!is_object($IscMatr)){
   echo "istanza non effettuata";
}

$CloneIscMatr = clone $iscMatr;

postmetto che uso php 5.2.

danke

Andrea Meriggioli

risposto 9 anni fa
cybaSsh
X 0 X

Guardando il codice:

$IscMatr=new Iiscrizione($recMatr);

$CloneIscMatr = clone $iscMatr;

vedo una I prima maiuscola e poi minuscola. Dipenderŕ da questo?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

...chiedo venia a tutti....

m'iscrivero ad un corso di meditazione Zen...contro la frenesia...

Andrea

risposto 9 anni fa
cybaSsh
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda