Visualizzazione dei risultati da 1 a 4 su 4

Discussione: eval che fa i dispetti

  1. #1

    eval che fa i dispetti

    ciao a tutti,
    volevo sapere come mai se eseguo questo codice:
    Codice PHP:
    <?php

    $code 
    = ...;
    eval(
    $code);
    ?>
    tutto funziona, ma gia modificando le cose:
    Codice PHP:
    <?php

    $code 
    = ...;
    run_code($code);

    function 
    run_code($source) {
    eval(
    $source);
    }
    ?>
    non funziona +?!

    grazie x le illuminazioni
    phac
    www.service4pc.it
    Servizi per il computer e non solo!

  2. #2
    per prima cosa invochi la funzione prima di averla dichiarata, secondo dovresti passare il risultato fuori dalla funzione con return.

    codice:
    <?php
    
    $data = date("d/m/Y");
    $source = 'Oggi è il $data.';
    
    function run_code($source) {
        global $data;
        eval("\$str = \"$source\";");
        return $str;
    } 
    
    echo run_code($source);

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    fatto nn funge
    il problema è ke dentro $code non ho niente ke restituisce una valore (echo, print, ...) ma soltanto una serie di variabili che dopo aver eseguito l'eval devo utilizzare, ma da dentro alla funzione nn funziona.
    phac
    www.service4pc.it
    Servizi per il computer e non solo!

  4. #4
    Originariamente inviato da phac
    fatto nn funge
    il problema è ke dentro $code non ho niente ke restituisce una valore (echo, print, ...) ma soltanto una serie di variabili che dopo aver eseguito l'eval devo utilizzare, ma da dentro alla funzione nn funziona.
    le variabili usate nella funzione devono essere dichiarate globali, altrimenti non si ha la visibilita' se esterne alla funzione oppure nello script se generate dalla funzione.

    vedi il global nel mio esempio.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.