Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    CallBacks o Estensioni delle Classi?

    Hola,

    una cosa inerente al mio post precedente (fa pure rima ^^)

    vi spiego...devo scegliere se usare un sistema a callbacks oppure far estendere la classe che preparo e richiamare certi metodi, ma mentre il primo sistema lo conosco bene il secondo no

    se faccio qualcosa del tipo
    codice:
    class Ciccio {
      function start() {
        $this->event_doStart();
      }
      
      function stop() {
        $this->event_doStart();
      }
      
      function event_doStart() {
      }
    
      function event_doStop() {
      }
    }
    
    class Test extends Ciccio {
      function event_doStart() {}
    }
    se inizializzo la classe test e richiamo il metodo start...verrà richiamato il metodo event_doStart della classe test o della classe parent? e se viene richiamato il metodo della classe test, se questo manca viene richiamato quello della classe madre? ed infine ... se manca il metodo start nella classe che estende Ciccio, verrò richiamato il metodo della classe Ciccio?

    se non erro le risposte saranno...
    Si
    Si
    Si

    xo purtroppo tempo ne ho veramente poco e non ho potuto provare da solo ^^ :\

  2. #2
    codice:
    class Ciccio {
    	function start() {
    		$this->event_doStart();
    	}
      
    	function stop() {
    		$this->event_doStop();
    	}
    
    	function event_doStart() {
    		echo 'event_doStart';
    	}
    
    	function event_doStop() {
    		echo 'event_doStop';
    	}
    }
    
    class Test extends Ciccio {
    	function stop() {
    		echo 'overriding';
    		parent::stop();
    	}
    }
    
    $asd = &new Test();
    $asd->start();
    $asd->stop();
    event_doStart
    overriding
    event_doStop
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    perfetto gracias

    ora mi conviene usare questo sistema o le callbacks per gestire la cosa?

    nel senso che ad es con le callbacks potrei definire un sistema per passare parametri opzionali, come ad es potrebbessere un codice identificativo della socket in questo modo una callback gestisce tutte le socket e le gestisce tramite questo codice identificativo che viene definito al momento in cui la callback viene settata
    mmm se uso le classi come potrei fare? potrei definire una funzione nella quale vengono impostati i parametri aggiuntivi da passare al metodo, giusto?

  4. #4
    dichiari una var di classe parent con quel valore, ogni extends avra' gia' assegnato quel valore in automatico, ereditandolo dalla parent ...

    ... le callbacks in questo caso sono, secondo me, superflue.

    Meglio lavorare con gli oggetti
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Originariamente inviato da andr3a
    dichiari una var di classe parent con quel valore, ogni extends avra' gia' assegnato quel valore in automatico, ereditandolo dalla parent ...

    ... le callbacks in questo caso sono, secondo me, superflue.

    Meglio lavorare con gli oggetti
    infatti ero indeciso per questo

    ora faccio qualche esperimento e vedo quali delle due conviene di +

  6. #6
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Ne approfitto per fare una domanda da neofita di OOP...

    Allora, la sintassi usata per fare questo tipo di classe è giusta o errata?

    codice:
    class ciccio {
    var $arg1;
    var $arg2;
    var $arg3;
    
    function ciccio($arg1, $arg2, $arg3)
    {
    $this->arg1 = $arg1;
    $this->arg2 = $arg2;
    $this->arg3 = $arg3;
    }
    
    function ciao1()
    {
    echo $this->$arg1;
    }
    
    function ciao2()
    {
    echo $this->$arg2;
    }
    
    function ciao3()
    {
    echo $this->$arg3;
    }
    }
    Credo proprio di no, ma è la prima volta che cerco di creare una classe...

    Comunque io vorrei comunque alla fine sapere come fare per interagire con la classe inviando i valori $arg1, $arg2 e $arg3 ed eseguire una delle funzioni...

    Spero in un vostro aiuto...

  7. #7
    [OT]
    Daniele ciao, hai la mailbox piena di messaggi!
    [/OT]
    Totò, vero ma strano
    www.ateicos.com

  8. #8
    Originariamente inviato da PaTeR
    Ne approfitto per fare una domanda da neofita di OOP...

    Allora, la sintassi usata per fare questo tipo di classe è giusta o errata?

    codice:
    class ciccio {
    var $arg1;
    var $arg2;
    var $arg3;
    
    function ciccio($arg1, $arg2, $arg3)
    {
    $this->arg1 = $arg1;
    $this->arg2 = $arg2;
    $this->arg3 = $arg3;
    }
    
    function ciao1()
    {
    echo $this->$arg1;
    }
    
    function ciao2()
    {
    echo $this->$arg2;
    }
    
    function ciao3()
    {
    echo $this->$arg3;
    }
    }
    Credo proprio di no, ma è la prima volta che cerco di creare una classe...

    Comunque io vorrei comunque alla fine sapere come fare per interagire con la classe inviando i valori $arg1, $arg2 e $arg3 ed eseguire una delle funzioni...

    Spero in un vostro aiuto...
    beh, potevi aprire un post nuovo per con il topic non c'entra nulla, cmq qual'è il tuo prob? hai provato quello che hai scritto?

  9. #9
    Originariamente inviato da ateicos
    [OT]
    Daniele ciao, hai la mailbox piena di messaggi!
    [/OT]
    [OT]
    ora è vuota ^^
    [/OT]

  10. #10
    Originariamente inviato da PaTeR

    Comunque io vorrei comunque alla fine sapere come fare per interagire con la classe inviando i valori $arg1, $arg2 e $arg3 ed eseguire una delle funzioni...

    Spero in un vostro aiuto...
    $x = new ciccio('blah1', 'blah2', 'blah3') ;

    $x->ciao3() ;

    http://cerca.html.it/cgi-bin/cerca.c...php.html.it%2F



    X Daniele

    non ho capito in quel caso come avresti fatto, attraverso le callbacks, a ottenere lo stesso risultato dell'estensione della classe, butteresti giù un esempio?
    per favore NIENTE PVT TECNICI da sconosciuti

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.