• User Newbie

    riferirsi ad una classe con una variabile

    provate questo codice


    class prova
    {
    function show()
    {
    echo "così funziona!";
    }
    }

    $a = "prova";
    $mio_oggetto = new $a;
    $mio_oggetto->show();

    e ora provate questo


    class prova2
    {
    const miavar="ciao!";
    }

    // funziona
    echo prova2::miavar;

    // non funziona
    $a="prova2";
    echo $a::miavar;

    non posso riferirmi al nome della classe con una variabile nel secondo caso...e questo non mi permette di fare un sacco di belle cosette...!!!


  • Super User

    @dogeht said:

    provate questo codice


    class prova
    {
    function show()
    {
    echo "così funziona!";
    }
    }

    $a = "prova";
    $mio_oggetto = new $a;
    $mio_oggetto->show();

    e ora provate questo


    class prova2
    {
    const miavar="ciao!";
    }

    // funziona
    echo prova2::miavar;

    // non funziona
    $a="prova2";
    echo $a::miavar;

    non posso riferirmi al nome della classe con una variabile nel secondo caso...e questo non mi permette di fare un sacco di belle cosette...!!!
    prova così

    echo{$a}:miavar

    o così, che funziona sicuro ma puoi avere problemi di sicurezza se $a lo prendi da un form

    eval('echo '.$a.':miavar');


  • User Newbie

    la seconda che hai detto!!!
    la prima ipotesi non funzionava, ma la seconda si.
    l'avevo tentata anche io ma sbagliando, infatti non avevo scritto echo dentro l'espressione...che salame.
    certo che, come dice un mio amico, EVAL = EVIL
    non sono dati passati dalle form, vai sicuro, pero' sarebbe da non utilizzare lo so.

    quella che rimane una questione aperta e' il fatto che secondo me siamo di fronte ad un baco del php... :mmm: () 😮


  • Super User

    @dogeht said:

    la seconda che hai detto!!!
    la prima ipotesi non funzionava, ma la seconda si.
    l'avevo tentata anche io ma sbagliando, infatti non avevo scritto echo dentro l'espressione...che salame.
    certo che, come dice un mio amico, EVAL = EVIL
    non sono dati passati dalle form, vai sicuro, pero' sarebbe da non utilizzare lo so.

    quella che rimane una questione aperta e' il fatto che secondo me siamo di fronte ad un baco del php... :mmm: () :ovedremo se trovo qualcosa su google.. comunque vedi un pò il fatto delle graffe, mi sembra c'entri qualcosa ehehehe


  • User Newbie

    le graffe servono se vuoi utilizzare la sintassi degli array dentro una stringa, ma in questo caso non mi aiutano! credo sia davvero un baco di php. a parte questo, per ora mi sfantazzo con eval. 😎


  • Super User

    @dogeht said:

    le graffe servono se vuoi utilizzare la sintassi degli array dentro una stringa, ma in questo caso non mi aiutano! credo sia davvero un baco di php. a parte questo, per ora mi sfantazzo con eval. 8)eheh in effetti mi ricordavo anche io così ma non sapevo se potevamo combinare qualcosa... mi disp ma mi sembra che per adesso puoi solo risolvere così