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

    Variabili e interpolazione di variabili

    Salve a tutti, sono alle prime armi con il php e vorrei partire con il piede giusto.
    Sto studiando le variabili ed ho un dubbio. nel libro dal quale sto studiando fa diversi esempi sull'assegnazione di un valore (numero o testo9 a diverse variabili, spiegandomi la differenza tra gli apici edi doppi apici.

    Pertanto se scrivo:
    Codice PHP:
    $var1 'PHP';
    echo 
    "$var1 rules!" 
    invia in output 'PHP rules!'


    mentre se scrivo ..


    Codice PHP:
    $var1 'PHP';
    echo 
    '$var1 rules!' 
    invia in output '$var1 rules!'


    Mi è venuto quindi il dubbio .. e se voglio visualizzare in output ' $var1 ha valore uguale a PHP '?

    Ho fatto diverse prove (sono proprio alle prime battute) e alla fine ho scritto cosi:

    Codice PHP:
    <?php$var1 'PHP';
    echo 
    '$var1 ha valore';
    echo 
    $var1 ";?>

    E' questa la soluzione corretta? o c'è un'altro modo di scrivere il codice e far si che l'output stampato a video sia sempre lo stesso?
    Grazie a chi vorrà darmi una mano.

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Non è la soluzione giusta, nemmeno sintatticamente. Sei arrivato al punto in cui subentra la concatenazione delle stringhe

    In PHP si possono unire stringhe tramite l'operatore . (il punto).
    Primo esempio:

    Codice PHP:
    $nome 'Daniele';
    $frase 'Il mio nome è ' $nome

    Il nome dentro la prima variabile adesso è concatenato alla stringa successiva, assegnata a $frase. Ora si può inviare il suo contenuto all'output, memorizzarlo, elaborarlo ulteriormente, ecc.

    La concatenazione funziona anche tra stringhe in apici singoli e stringhe in apici doppi insieme:

    Codice PHP:
    $nome 'Daniele';
    $interlocutore 'sig. Egidio';

    echo 
    'Si ricorda di me? Il mio nome è ' $nome .", come sta $interlocutore?";

    // Si ricorda di me? Il mio nome è Daniele, come sta sig. Egidio? 

    Notare che il punto interrogativo non fa parte della variabile $interlocutore pur essendo unito ad esso dato che non può essere usato nel nome di una variabile.

    A questo punto può nascere una domanda: come inserire in una stringa lo stesso tipo di apice con cui la stringa stessa è delimitata?

    Codice PHP:
    $citazione "Daniele chiese perplesso: "e adesso?".";

    // Risultato: errore 

    Il parser non può sapere che nel caso precedente debbano essere ignorate le doppie virgolette della frase. Ci viene in soccorso un carattere speciale: \ (il backslash), chiamato "escape". Anteponendolo alle virgolette esse saranno trattate come parte della stringa anziché come delimitatore di quest'ultima:

    Codice PHP:
    $citazione "Daniele chiese perplesso: \"e adesso?\".";

    // Risultato: Daniele chiese perplesso: "e adesso?". 

    Stesso discorso varrebbe con gli apici singoli. In ogni caso, però, l'escape non va inserito se gli apici interni alla stringa siano diversi da quelli che la delimitano (per esempio se avessimo usato l'apice singolo nell'esempio precedente): verrebbe inserito il backslash nella stringa.


    Torniamo alla concatenazione di stringhe perché possiamo fare di più: anche le stringhe create con la sintassi "heredoc":

    Codice PHP:
    $autore 'S. Quasimodo';
    $poesia = <<<EOL
    Ognuno sta solo sul cuor della terra
    trafitto da un raggio di Sole:
    ed è subito sera.

    EOL;

    echo 
    $poesia $autore;

    /*
    Ognuno sta solo sul cuor della terra
    trafitto da un raggio di Sole:
    ed è subito sera.

    S. Quasimodo
    */ 

    Esiste anche la sintassi "nowdoc" ma vengono entrambe usate di rado. Ho voluto citarle per completezza e per introdurti alla flessibilità che è propria della programmazione, apprezzabile man mano che si acquisisce padronanza.

    Codice PHP:
    $alunno 'Daniele';
    $numero 12;

    $frase 'La maestra, a quel punto, chiese: "Sai dirmi che numero otteniamo elevando '$numero " alla potenza di due?\". E $alunno rispose senza esitare: "$numero $numero .'!';

    // La maestra, a quel punto, chiese: "Sai dirmi che numero otteniamo elevando 12 alla potenza di due?". E Daniele rispose senza esitare: 144! 

    $numero, pur essendo di tipo intero, viene convertito in una stringa: la prima volta così com'è, la seconda volta dopo averlo prima moltiplicato per sé stesso. Siamo arrivati così alla conversione dei tipi di variabile. Che è un altro capitolo ma ti dà un'idea della flessibilità (e anche un po' della potenza) che la programmazione possiede.

    Un buon manuale, la documentazione come punto di riferimento, guardare il codice che funziona e tanta pratica. Buon proseguimento
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Grazie infinite Sky, la tua spiegazione è stata chiara ma efficace. Ho compreso il concetto ed ora mi ci esercito affinchè diventi una conoscenza consolidata.

    In effetti avevo già studiato la concatenazione delle stringe ma non ne avevo compresa l'utilità.

    Alla prossima
    Ultima modifica di CervelLotto; 30-05-2014 a 07:28

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.