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

    [fantascienza] funzione dentro una variabile

    Ciao gente, sono alle prese con una nuova visione.
    Molte volte infatti mi capita di dover "spezzare" un echo per stampare qualcosa di condizionale... ad esempio:

    Codice PHP:
    echo "

    bla bla</p>"
    ;

    if (
    $variabile == true)
        echo 
    "

    paragrafo vero</p>"
    else
        echo 
    "<span>span falso</span>"

    echo "

     altro testo </p>"

    Ora, mi secca molto come approccio; ho risolto in parte con heredoc ma non al 100%.
    Mi immagino dunque di poter inserire quell'if-else in una varibile, come di seguito:

    Codice PHP:
    function print()
    {
    if (
    $variabile == true)
        echo 
    "

    paragrafo vero</p>"
    else
        echo 
    "<span>span falso</span>"
    }

    $f = print(); 
    da richiamare con immenso stile nell'echo

    Codice PHP:
    echo "


    bla bla</p>
    $f


     altro testo </p>"

    Non sarebbe figo? Ma soprattutto: si può fare?!?

  2. #2
    Si puo' fare, basta mettere return invece di echo nella funzione.
    Ah, e anche i punto e virgola.
    Ah, e anche usare un nome di funzione diverso da una parola riservata

  3. #3
    Originariamente inviato da k.b
    Si puo' fare, basta mettere return invece di echo nella funzione.
    Ah, e anche i punto e virgola.
    Ah, e anche usare un nome di funzione diverso da una parola riservata
    E' proprio vero! Però ... con gli heredoc sai che ho dei problemi?
    Nel senso che se piazzo la funzione all'interno delle graffe ottengo un parse error...

  4. #4
    Originariamente inviato da Tobler
    E' proprio vero! Però ... con gli heredoc sai che ho dei problemi?
    Nel senso che se piazzo la funzione all'interno delle graffe ottengo un parse error...
    Non ho capito...

  5. #5
    Originariamente inviato da k.b
    Non ho capito...
    Intendo dire che non puoi inserire una funzione nel seguente modo:

    Codice PHP:
    echo <<<EOF


    testo</p>


    altrotesto</p>


    funzione()</p>
    EOF; 
    All'interno di un heredoc puoi inserire solo testo, per buttarci dentro una funzione è necessario spezzarlo in più echo.

  6. #6
    Puoi semplicemente chiamare la funzione prima salvandone il valore di ritorno in una variabile, e usare quella variabile nell'heredoc.

    Comunque io preferisco scrivere l'html fuori dai tag php, mettendo i valori dinamici in variabili da inserire nell'html con <?php echo $variabile; ?>. Cosi' facendo si risparmiano casini con le virgolet, e si mantiene la syntax highlighting nell'editor.

  7. #7
    Originariamente inviato da k.b
    Puoi semplicemente chiamare la funzione prima salvandone il valore di ritorno in una variabile, e usare quella variabile nell'heredoc.
    Hai perfettamente ragione!

    Comunque io preferisco scrivere l'html fuori dai tag php, mettendo i valori dinamici in variabili da inserire nell'html con <?php echo $variabile; ?>. Cosi' facendo si risparmiano casini con le virgolet, e si mantiene la syntax highlighting nell'editor.
    Guarda, qui si aprirebbe un thread a parte... con gli heredoc puoi dimenticarti delle virgolette, però come dici tu si perde la syntax highlighting dell'editor!
    Altri dilemmi per il futuro

    Nel frattempo ti ringrazio!

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.