Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    classi: clone,copie e referenze

    questo codice....
    Codice PHP:
    <?php 
    echo phpversion()."

    "
    ;

    $class          =new StdClass;
    $cloned         =clone $class;
    $copied         =$class;
    $referenced     =&$class;


    $class->test      'foo';    
    $cloned->test     'bar';    
    $copied->test     'baz';    

    trace($class);        //stampa baz
    trace($cloned);       //stampa bar
    trace($copied);       //stampa baz
    trace($referenced);   //stampa baz

    echo "

    "
    ;

    $class->test      'foo cambiato';  
    $cloned->test     'bar cambiato';  
    $copied->test     'baz cambiato';  

    trace($class);                       //stampa baz cambiato
    trace($cloned);                      //stampa bar cambiato
    trace($copied);                      //stampa baz cambiato
    trace($referenced);                  //stampa baz cambiato


    function trace($obj){
        echo 
    $obj->test."
    "
    ;
        }
    ?>
    testato su PHP versioni 5.2.0-8+etch16 e 5.3.0

    quello che mi fa strano è $copied, che in realtà si comporta come referenziata....

    mi sfugge qualcosa?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    http://it.php.net/manual/en/language.oop5.basic.php

    ti sfugge qualcosa... leggi sopra l'esempio 4.

    ciao

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    giusto!

    mi era sfuggito

    però non la vedo una cosa molto coerente con tutto il resto
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Se non è zuppa è pampagnato, ovvero se funzionasse come pensi tu a che scopo la clone?

    Comunque hai ragione, prima ci hanno abituato con degli elementi non scalari come gli array che con l'assegnazione creano una copia e poi ci piazzano gli oggetti che invece passano un riferimento.

    E' un tantino fuorviante, ma d'altra parte PHP è sempre stato un linguaggio libertino e fuorviante.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.