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

    Eseguire contenuto variabile

    Salve a tutti,

    volevo sapere se esiste un modo per 'eseguire' il contenuto di una variabile.

    Mi spiego meglio.

    Posto $equ = '10*5-3+sqrt(9)', vorrei risolvere questa variabile in modo da conoscerne il valore matematico.

    Che io sappia in PHP è possibile solo utilizzare eval(), anche se ahimè non mi sembra di arrivare ad una soluzione, infatti se scrivo:

    codice:
    eval("$tmp = $equ;");
    Non funge. Tuttavia scrivendo:

    codice:
    eval("echo $equ;");
    Mi stampa esattamente quello che mi serve. Credo quindi che ci sia qualcosa nell'utilizzo di eval che forse sfugge.

    Grazie a chiunque vorrà aiutarmi.

  2. #2
    Il comportamento da te descritto è più che normale. Nel tue secondo esempio stampi il risultato dell'operazione matematica mentre nel primo non fai altro che assegnare alla variabile $tmp il contenuto della variabile stringa $equ.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Intanto grazie per la risposta.

    Ok, ma se io volessi assegnare il risultato dell'operazione matematica ad una variabile, come dovrei fare?

    Devo tra l'altro studiarmi un pò meglio il significato di eval(). Il tuo dire 'è più che normale' a me onestamente non sembrerebbe tale. Mi aspettavo infatti un echo del contenuto (stringa) della variabile e non il risultato dell'operazione matematica.

  4. #4
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Ok, ma se io volessi assegnare il risultato dell'operazione matematica ad una variabile, come dovrei fare?
    Lo fai già correttamente:
    Codice PHP:
    $equ '10*5-3+sqrt(9)';
    eval(
    "\$tmp = $equ;");
    echo 
    $tmp// Restituisce 50 
    Può comunque essere più utile un parser per valutare espressioni matematiche in modo sicuro: http://www.phpclasses.org/package/26...pressions.html

  5. #5
    Pazzesco...mi mancava uno 'slash' iniziale XD

    Grazie mille dell'aiuto

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.