Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558

    Equivalente PHP di Class.forName(...) in Java

    Come da oggetto, c'è qualcosa di simile in PHP al Class.forName(...) di Java?

    Grazie...


  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    In php puoi semplicemente fare

    $qualcosa = 'nome_classe';
    $var = new $qualcosa();

  3. #3
    Guarda qui per l'operatore 'instanceof'

    o qui per la reflection.

  4. #4
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Originariamente inviato da bubi1
    In php puoi semplicemente fare

    $qualcosa = 'nome_classe';
    $var = new $qualcosa();
    Pensavo esistesse qualcosa di più robusto...questa la conoscevo, ma pensavo fosse un modo "un po' alla buona" per istanziare classi...comunque grazie lo stesso


  5. #5
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Originariamente inviato da maje
    Guarda qui per l'operatore 'instanceof'

    o qui per la reflection.
    Se ho ben capito dalla documentazione, questi metodi sono applicabili quando ho già istanziato una classe: istanceof mi determina il tipo a runtime e reflection mi permette di interrogare una classe risalendo ad alcume proprietà, giusto?

    Quindi devo cmq istanziare come suggerito da bubi1?


  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da Gab-81
    Pensavo esistesse qualcosa di più robusto...questa la conoscevo, ma pensavo fosse un modo "un po' alla buona" per istanziare classi...comunque grazie lo stesso

    Per istanziare una classe basta fare $oggetto = new Classe();

    Mentre per istanziare dinamicamente una classe (che e' quello che chiedi tu), come in java con forname, fai come ho detto sopra.

    Poi ricorda che php non ha i vincoli di tipizzazione rigorosa come java. Quindi non c'e' nulla di piu' "alla buona" o "robusto" di $a = new $b().

    Potresti anche usare call_user_func, e una classe con una funzione che restituisca un istanza di se stessa, ma sarebbe una cosa ridondante.

  7. #7
    Originariamente inviato da Gab-81
    Se ho ben capito dalla documentazione, questi metodi sono applicabili quando ho già istanziato una classe: istanceof mi determina il tipo a runtime e reflection mi permette di interrogare una classe risalendo ad alcume proprietà, giusto?

    Quindi devo cmq istanziare come suggerito da bubi1?

    sì esatto, però, visto che proprio come dice bubi1 PHP non è fortemente tipizzato, puoi usare quelle tecniche per i controlli.

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.