Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183

    trasformare stringa in variabile... un caso particolare

    ecco la situazione:
    io ho questa una variabile stringa che assume valori in forma:

    $stringa = '$vettore_2[0]';

    io vorrei stampare a video il valore del vettore rappresentato dalla stringa.
    come posso convertire $stringa in $vettore_2[0] ?

    E' possibile questo?

    Grazie

  2. #2
    Codice PHP:
    $stringa $vettore_2[0]; 
    Altrimenti non ho capito la domanda
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    forse mi sono spiegato male io...

    immagina che, dopo un certo algoritmo, la tua $stringa possa assumere DIVERSI valori e diventare

    $stringa = '$vettore_2[0]'
    oppure
    $stringa = '$vettore_2[1]'
    oppure
    $stringa = '$vettore_4[0]'
    ecc
    ecc

    ora se stampo a video $stringa (echo $stringa) ottengo ad esempio:
    $vettore_3[4]

    supponiamo che $vettore_3[4] valga "pippo", io vorrei che a video comparisse "pippo".

    quindi ho bisogno di una specie di funzione (che non so se esiste) che scrivendo:
    echo funzione_xyz($stringa)
    mi dia come risultato "pippo"

  4. #4
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Prova ad usare la funzione eval (http://php.net/manual/en/function.eval.php).
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  5. #5
    Originariamente inviato da iorso
    forse mi sono spiegato male io...

    immagina che, dopo un certo algoritmo, la tua $stringa possa assumere DIVERSI valori e diventare

    $stringa = '$vettore_2[0]'
    oppure
    $stringa = '$vettore_2[1]'
    oppure
    $stringa = '$vettore_4[0]'
    ecc
    ecc

    ora se stampo a video $stringa (echo $stringa) ottengo ad esempio:
    $vettore_3[4]

    supponiamo che $vettore_3[4] valga "pippo", io vorrei che a video comparisse "pippo".

    quindi ho bisogno di una specie di funzione (che non so se esiste) che scrivendo:
    echo funzione_xyz($stringa)
    mi dia come risultato "pippo"
    Come ti ho fatto notare nel mio precedente post basta togliere gli apici!

    Originariamente inviato da satifal
    Codice PHP:
    $stringa $vettore_2[0]; 
    Altrimenti non ho capito la domanda
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Anzi, ora che ci penso... non conosco il tuo codice, ma perché non valorizzi direttamente $stringa con il valore del vettore? Se ti è possibile prova a fare una cosa del genere

    codice:
    $stringa = sprintf('la variabile conterrà il valore %s', $tuo_vettore);
    dove "%s" sarà appunto sostituito con il valore del tuo vettore.

    Edit: lascia perdere, ho scritto una cretinata... il tuo problema è appunto ottenere il valore del vettore Usa eval come ti ho suggerito prima.
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    posto il codice da cui nasce il problema:

    in un file sono elencati una serie di messaggi utente (in italiano e inglese) esempio:
    ..
    $messaggio_3=array( "Logout effettuato", "Logout");
    $messaggio_4=array( "Ciao" , "Hello");
    ..

    per stampare il messaggio il codice è:
    codice:
    if (isset ($_GET['messaggio'])){
    	for($i = 1; $i <= NUMERO_MESSAGGI; $i++){
    		if ($_GET['messaggio'] == $i){
    		$mes= '$messaggio_'.$i.'['.$lingua.']';
        // ecco il problema -------> echo $mes;
    		}
    	}
    }
    come stampare il messaggio $mes= '$messaggio_'.$i.'['.$lingua.']'; a video?

    grazie

    ps ovviamente la variabile $lingua è stata definita nella prima parte del codice (qui non riportato) in base alla lingua selezionata...

    ancora:
    potrei semplificare il tutto con:
    codice:
    if (isset ($_GET['messaggio']))	{
        if ($_GET['messaggio'] == 1){
    	echo $messaggio_1[$lingua];
        }
        if ($_GET['messaggio'] == 2){
    	echo = $messaggio_2[$lingua]];
        }
        if ($_GET['messaggio'] == 3){
    	echo = $messaggio_3[$lingua]];
        }
    }
    pero' il primo codice mi sembra più 'elegante'.... ma è realizzabile?

  8. #8
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Ho capito... ma a questo punto restituisci direttamente l'array e ti semplifichi la vita. Crea un file e chiamalo mex_ita.php e metti dentro:

    Codice PHP:
    return array( => 'messaggio 0'=> 'messaggio 1'=> 'messaggio 2' ); 
    ovviamente puoi o fare tanti file quanti sono le lingue oppure creare un'array più complessa che le contenga tutte. Una volta restituita l'array lavori su questa ciclandola e prendolo l'indice passato in $_GET. Più semplice no?
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

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.