Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    ridefinizione metodi all'interno di una classe

    mi sembrava di aver letto ( ma forse mi ricordo male... ) che a partire da una determinata versione fosse possibile ridefinire metodi all'interno della stessa classe...


    probabilmente sbaglio anche il termine, ma non sono ancora molto ferrato con le classi, ma quello che intendo è poter fare in una classe una cosa del genere:

    codice:
    class Pippo
    {
    
      function pluto($id){
        ---
      }
      
      function pluto($id, $nome){
        ---
      }
    
    }
    e poi, a seconda di quanti parametri si passavano nella chiamata il compilatore sapeva quale funzione richiamare. Mi sembra che in alcuni linguaggi sia possibile ( java forse? l'ho studiata solo alle superiori e la ruggine è parecchia ), ma in php se provo a farlo ottengo sempre il medesimo errore: cannot redeclare etc etc...


    io ho provato a cercare in giro, ma non ho trovato granché...fate un po' voi che io avevo capito che fosse disponibile già dalla 5


    io ho la 5.1.6 ma ancora non è supportata, ogni commento e intervento è ben accetto!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    ciao, in java é possibile farlo... in php ho trovato una specie di soluzione... ma non é il max... http://us3.php.net/language.oop5.overloading (nei commenti)


    ecco come (esempio adattato dal link):

    Codice PHP:
    Class test{
      
      public function 
    __call($f$p) {
        if (
    method_exists($this$f.sizeof($p))) return call_user_func_array(array($this$f.sizeof($p)), $p);
        
    // function does not exists~
        
    throw new Exception('Tried to call unknown method '.get_class($this).'::'.$f);
      }

      function 
    sayHello1($name){
        echo 
    "Hello!
    "
    ;
      }
      
      function 
    sayHello2($fname$name){
        echo 
    "Hello $fname $name!
    "
    ;
      }

    }


    $t = new test();
    $t->sayHello('pippo');
    //Hello pippo!

    $t->sayHello('pippo''cognomePippo');
    //Hello pippo cognomePippo!

    $t->sayHello();
    //Tried to call unknown method... 
    sinceramente pero non ho ben capito come funziona!
    alcool: la causa e la soluzione di tutti i problemi

  3. #3
    grazie! provo a darci un'occhiata appena ho un attimo di tempo
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.