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

    Eval e instanziare classi

    Salve a tutti... ho un problema con eval o comunque con un modo per instanziare una classe dove il nome della classe è contenuto in una variabile.

    Codice PHP:
     $_CONN=new class_connessione($db,$user,$psw); //oggetto per la connessione al DB

     
    $varClasse="class_opzione"// classe da instanziare

     // $tmp= new class_opzione(0,$_CONN);   come andrebbe instanziato

     
    eval("$tmp = new \"$varClasse\"(0,\"$_CONN\");"); // qui da errore 

    Questo codice da questo errore:

    codice:
    Catchable fatal error:  Object of class class_connessione_mysqli could not be converted to string in /home/rino/Dropbox/Sviluppo/e-tick.it/librerie/classi_php/class_oggetto_generico_elenco.php on line 140
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Prova

    eval("\$tmp = new $varClasse(0,\$_CONN);");
    Ultima modifica di badaze; 11-03-2017 a 19:33
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Comunque "eval is evil". Hai provato senza eval

    $tmp= new $varClasse(0,$_CONN);
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Prova

    eval("\$tmp = new $varClasse(0,\$_CONN);");
    Così mi da questo errore
    codice:
    Parse error:  syntax error, unexpected '(' in /home/rino/Dropbox/Sviluppo/e-tick.it/librerie/classi_php/class_oggetto_generico_elenco.php(141) : eval()'d code on line 1
    Invece senza eval
    Codice PHP:
    $tmp= new $varClasse(0,$_CONN); 
    da questo errore:
    codice:
    <b>Fatal error</b>:  Uncaught Error: Class name must be a valid object or a string in /home/rino/Dropbox/Sviluppo/e-tick.it/librerie/classi_php/class_oggetto_generico_elenco.php:141
    Stack trace:
    #0 /home/rino/Dropbox/Sviluppo/e-tick.it/librerie/classi_php/class_oggetto_generico_elenco.php(63): class_oggetto_generico_elenco-&gt;elencoElementi(0, 1)
    #1 /home/rino/Dropbox/Sviluppo/e-tick.it/test_classi/test_class_opt_elenco.php(12): class_oggetto_generico_elenco-&gt;elenco(1)
    #2 {main}
      thrown in <b>/home/rino/Dropbox/Sviluppo/e-tick.it/librerie/classi_php/class_oggetto_generico_elenco.php</b> on line <b>141</b><br />
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  5. #5
    Mi correggo $tmp= new $varClasse(0,$_CONN); è corretto!
    Grazie mille non sapevo si potesse fare!
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

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.