Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    1

    Richiama variabili in modo dinamico

    Salve, ho questo tipo di problema.
    in una classe dovrei confrontare due variabili per i quali non conosco subito i nomi.
    Forse con un esempio diretto riesco a spiegarmi meglio:

    $campo1 : prima variabile di confronto
    $campo2 : seconda variabile di confronto

    entrambe le variabili contengono il nome della variabile che dovrà essere confrontata, es:

    $campo1 = "risultato['plafond']";
    $campo2 = "risultato['punteggio']";

    ecco cosa vorrei fare:

    if(${"class->".$campo1} > ${"class->".$campo2}) { FACCIO DELLE COSE }

    Scritto così ho come errore : Undefined variable: class->risultato['plafond']

    PS. Premetto che la variabile esiste ed ha un valore. Infatti:

    echo $class->risultato['plafond']; --> stampa 10
    if(${"class->".$campo1} > ${"class->".$campo2}){ FACCIO DELLE COSE } --> ERRORE

    Spero di essere stato chiaro.
    Grazie

    Antonio

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Devi scomporre ogni parte dell'informazione ovvero istanza, array e elemento.
    Prova cosi.

    Codice PHP:
    <?php 
    class pippo {
     public 
    $risultato = array();
    // class pippo {
    $a = new pippo();
    $a->risultato['plafond']   = 130;
    $a->risultato['punteggio'] = 120;
    $campo1 "plafond";
    $campo2 "punteggio";
    if (${
    "a"}->{'risultato'}[$campo1] > ${"a"}->{'risultato'}[$campo2]) {
     echo 
    "yes";
    } else {
     echo 
    "no";
    }
    echo 
    "<br/>oppure<br/>";
    $istanza "a";
    $nome    "risultato";
    if (${
    $istanza}->{$nome}[$campo1] > ${$istanza}->{$nome}[$campo2]) {
     echo 
    "yes";
    } else {
     echo 
    "no";
    }
     
    ?>
    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 cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Perchè ${"a"} ?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Perche nel primo c'é qualcosa di simile.
    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

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Perche nel primo c'é qualcosa di simile.
    Scusa l'ignoranza ma non ho capito, è una sintassi valida ?

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Sí. In questo modo puoi avere nomi di variabili dinamici.
    $pippo = 'a';
    $a = 100;
    echo ${$pippo};
    stampa 100.
    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

  7. #7
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Quindi pippo contiene la stringa a un altra variabile di nome a contiene 100 ma mettendo pippo tra graffe e come se gli si dica pippo non contiene la stringa a ma la variabile a ?

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    pippo contiene il nome della variabile a non il contenuto.
    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

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Però sono le graffe che fanno cambiare il contenuto altrimenti pippo conterrebbe la stringa a giusto ?

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Yes.
    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

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.