Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    48

    chiamare altre funzioni in __construct

    Salve a tutti,
    mi sto dedicando a PHP da poco tempo, e c'è una cosa che mi lascia perplesso.
    in una classe, nel metodo __construct() si possono chiamare altre funzioni di quella classe?
    Mi spiego meglio con un semplice esempio:
    la mia classe è:
    Codice PHP:
    class statistico
        
    {
            public 
    $voti;
            public 
    $stri;
            
            function 
    __construct($stringa)
            {
                
    $this->stri $stringa;
                
    $this->voti trasforma_stringa($stringa);
                
            }
             
            
            function 
    get_array($i)
            {
                return 
    $this->voti[$i];
            }
            
            
            function 
    trasforma_stringa($st)
            {
                
    $arr preg_split("/[\s,]+/"$st);
                return 
    $arr;
            }

    se poi, fuori dalla classe, invoco:
    Codice PHP:
    $a = new statistico($_POST['voti']);
    echo 
    $a->get_array(1); 
    non mi restituisce niente.

    invece con il seguente codice funziona, come mai? io vorrei che trasforma_stringa avvenisse al momento dell'istanziazione
    Codice PHP:
    class statistico
        
    {
            public 
    $stri;
            
            function 
    __construct($stringa)
            {
                
    $this->stri $stringa;            
            }
             
            function 
    get_array2($arr$i)
            {
                return 
    $arr[$i];
            }
            
            function 
    trasforma_stringa($st)
            {
                
    $arr preg_split("/[\s,]+/"$st);
                return 
    $arr;
            }
            
    }
        
        
    $a = new statistico($_POST['voti']);
        
    $ray $a->trasforma_stringa($_POST['voti']);
        echo 
    $a->get_array2($ray1); 

  2. #2
    function __construct($stringa)
    {
    $this->stri = $stringa;
    $this->voti = $this->trasforma_stringa($stringa);

    }


    prova a mettere il $this-> anche davanti al metodo che vuoi utilizzare, inoltre dichiara anche il grado di visibilità dei metodi con public, protected e private per maggior sicurezza e correttezza di sintassi
    Perpetual Ribellion With Absolutely No Cause

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    48
    Originariamente inviato da DrugsMatt
    function __construct($stringa)
    {
    $this->stri = $stringa;
    $this->voti = $this->trasforma_stringa($stringa);

    }


    prova a mettere il $this-> anche davanti al metodo che vuoi utilizzare, inoltre dichiara anche il grado di visibilità dei metodi con public, protected e private per maggior sicurezza e correttezza di sintassi
    mancava proprio il $this davanti al metodo, un pomeriggio perso per questa cosa
    in Java il this non è così importante!
    grazie mille!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.