
Benvenuto! Se sei un nuovo visitatore ti consiglio di iscriverti al mio Feed RSS in modo da essere sempre aggiornato riguardo l'uscita di nuovi articoli oppure sbirciare tra i tutorials ed i progetti.
Per avere un'idea del best-content presente in questo blog puoi leggere il post intitolato "Ed ora è il momento di rilanciare alcune iniziative! (1a parte e 2a parte)".
Buona navigazione e grazie per la visita!
Requisiti
Visione generale
Partiamo subito dal dire che echo() e print() non sono funzioni bensì costrutti di linguaggio quindi con le seguenti conseguenze:
La funzione importante che svolgono questi due costrutti riguarda la possibilità di visualizzare stringhe di testo sulla pagina Web (oppure tramite linea di comando con il risultato nello standard output della console).
Il costrutto echo()
Partiamo subito esaminando un esempio semplice semplice:
Come si può notare definisco due variabile di tipo stringa con il mio nome e cognome per poi visualizzarlo con l'echo().
Nel costrutto echo() la specificazione delle stringhe può avvenire in due modi:
La scelta non è per niente casuale visto che utilizzando le virgolette doppie ho diritto al seguente trattamento:
Se invece usavamo le virgolette singole:
Proviamo quindi a verificare ciò modificando l'esempio precedente:
Come possiamo notare le variabili non vengono espanse ma scritte così come sono, ciò rende questa modalità più veloce di quella a virgolette doppie (ovviamente nel caso in cui non dobbiamo espandere alcuna variabile).
Ora esaminiamo un altro piccolo esempio:
Se eseguite questo script riceverete un errore che dice "Notice: Undefined variable: unodue in c:\...\ on line 4" perchè PHP è andato alla ricerca della variabile $unodue non facendo ciò che ci aspettavamo (oddio non esageriamo :P).
Per risolvere il problema abbiamo racchiuso il nome della variabile tra le parentesi graffe mettendoci quindi il cuore in pace.
Un altra cosa da notare è come sia possibile suddividere una stringa su più righe magari rendendo il codice più leggibile (verrà comunque visualizzato su un unica riga a meno che non usiate il codice escape corrispondente al ritorno a capo oppure per il web il tag <br/>).
Ma se io ora voglio concatenare più stringhe come faccio?
Non è poi così difficile:
Come noterete l'output è uguale in tutti i due casi, con la sola differenza che nel primo metodo abbiamo usato l'operatore punto per unire le stringhe.
Print()
Il costrutto print() si comporta in maniera molto simile a quella dell'echo() tant'è vero che molte persone li considerano uguali, però ci sono delle differenze minimali quali:
Soprattutto l'ultimo motivo porta molte persone a utilizzare l'echo().
Stringhe heredoc
Come sappiamo il costrutto echo() (o print()) stampa delle stringhe che PHP permette di identificare usando anche la sintassi heredoc.
Per delimitare le stringhe useremo "<<<" seguito da un identificatore per poi chiudere la stringa con lo stesso identificatore seguito da un punto e virgola ";" (che deve essere presente nella prima colonna della riga).
Ecco un esempio:
La stringa heredoc si comporta esattamente come quella con virgolette doppie quindi non c'è alcun motivo particolare per discriminare l'una o l'altra.
Alcuni possono preferire questo tipo di stringhe perchè l'identificatore (se scelto in modo opportuno) permette di capire quasi subito il contenuto della stringa.
Daniele Simonin 5 Settembre 2005 alle 19:13 Trackback URI
| L | M | M | G | V | S | D |
|---|---|---|---|---|---|---|
| « Apr | ||||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
Scrivi un commento
Tags di formattazione:
Leggi i 4 commenti
A me le heredoc non sono mai piaciute, ma non chiedermi perché :)
Commento di Napolux 12 Febbraio 2007 alle 13:46
Ottimo articolo. L'ho letto con vivo interesse, dato che mi sto avvicinando al php. Da tempo cercavo di capire la differenza tra echo e print. Grazie!
Commento di Alberto 15 Febbraio 2007 alle 18:33
Complimenti, i tuoi tutorial sono davvero ottimi.
Se posso permettermi solo un consiglio veloce: manca un tasto rapido x la stampa dell'articolo!!
Sarai linkato sicuramente sul mio sito tra i preferiti.
ciao e buon lavoro, Eagle
Commento di Eagleyes 3 Aprile 2007 alle 10:28
grazie mille :) vedrò cosa posso combinare per il suggerimento che mi hai dato.
Commento di Daniele Simonin 3 Aprile 2007 alle 10:33