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

    Passare variabile esterna all'interno di una classe

    Buon pomeriggio a tutti.
    Devo passare questo array e poi gestirne i valori all'interno di 2 funzioni, come faccio?

    Codice PHP:
    $options = array(    "nFile"=>$nomeFile,    "dFile"=>$dirFile,    "eAddr"=>$emailAddr,    "cMod"=>$codMod);

    class 
    phpmailerTest extends TestCase{
    function 
    setUp() {
    global 
    $global_vars;
    $this->Mail = new PHPMailer();$global_vars = array('mail_to' => "[email protected].it"'mail_cc' => '','mail_bcc' => '');$this->SetAddress($global_vars["mail_to"], "[email protected]");}

    function 
    test_Html() {
    global 
    $global_vars;
    $this->Mail->AddStringAttachment($options['dFile'],$options['nFile']);
    }


    Grazie.

  2. #2
    credo che puoi aggiungere alla classe una proprietà "options" (di tipo array), e valorizzarla nel costruttore della classe (che al momento non stai utilizzando). A questo punto utilizzi $this->options nei due metodi interessati
    Ultima modifica di aquatimer2000; 16-10-2020 a 08:37
    aquatimer2000

  3. #3
    purtroppo se utilizzo il costruttore mi va in errore, e non capisco perché.

    In genere ho sempre utilizzato le variabili di sessione, ha sempre funzionato e amen.
    Però, vorrei togliermi la soddisfazione di capire come passare valori esterni, all'interno di una classe ed utilizzarli dentro un paio di funzioni come ho postato all'inizio.

  4. #4
    quale è l'errore?
    come utilizzi il costruttore?
    aquatimer2000

  5. #5
    Codice PHP:
    class esempio {
        public 
    $option;

        public function 
    __construct(array $option) {
            
            
    $this->option $option;
        
        }


        public 
    function1 () {
            
    // accedi a $this->option;
        
    }
        public 
    function2() {
            
    // accedi a $this->option;
        
    }
    }

    $option = []; //tuo array

    $a = new esempio($option);
    //.. ecc... 

    .. qualcosa tipo questo..
    aquatimer2000

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,044
    Che errore ti da il costruttore?

    Occhio che alle funzioni manca "function" dopo public.

  7. #7
    Quote Originariamente inviata da aquatimer2000 Visualizza il messaggio
    Codice PHP:
    class esempio {
        public 
    $option;

        public function 
    __construct(array $option) {
            
            
    $this->option $option;
        
        }


        public function 
    func1 () {
            
    // accedi a $this->option;
        
    }
        public function 
    func2() {
            
    // accedi a $this->option;
        
    }
    }

    $option = []; //tuo array

    $a = new esempio($option);
    //.. ecc... 

    .. qualcosa tipo questo..
    chiedo scusa ho scritto a tirar via...
    aquatimer2000

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,044
    Quote Originariamente inviata da aquatimer2000 Visualizza il messaggio
    chiedo scusa ho scritto a tirar via...
    Ok, ma che problemi hai con questo codice? Così com'é non da alcun errore. Tu dici che il costruttore introduce un errore, quale?

  9. #9
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ok, ma che problemi hai con questo codice? Così com'é non da alcun errore. Tu dici che il costruttore introduce un errore, quale?
    Io non ho nessun errore, ho risposto sopra ad ANTAGONIA con quell'esempio. Non ho posto io problema. Sentiamo che ci dice
    aquatimer2000

  10. #10
    Buongiorno a tutti e grazie per aver risposto.
    Utilizzo il costruttore in questo modo:
    Codice PHP:
    include("phpunit.php");
    require(
    "class.phpmailer.php");
    error_reporting(E_ALL);
    $myVar = array( "nomeFile"=>$nomeFile,    "dirFile"=>$dirFile,    "emailAddr"=>$emailAddr,    "codMod"=>$codMod);

    class 
    phpmailerTest extends TestCase{    
    private 
    $myarray;    
    public function 
    __construct($myarray) {              
    $this->myarray $myarray;       
     }

    Questo è l'errore:
    Codice PHP:
    Fatal errorMethod name must be a string in /phpmailer/phpunit.php on line 129
    function runTest() {    
    $name $this->name();//line 129    
    // Since isset($this->$name) is false, no way to run defensive checks   
    $this->$name();  

    Questo è quanto.

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