Pagina 1 di 1

"here document" in PHP

Inviato: mar 21 ott 2008, 12:36
da samiel
Piccola curiosità cui non ho trovato risposta nei manuali.
L'opzione "here document" (<<<HERE ... HERE;) di PHP
dovrebbe stampare tutto alla lettera, un po come fanno
in LaTeX gli ambienti verbatin e alltt. Però se ci infilo
diciamo "$variabile", quella stringa non viene affatto
visualizzata. Allora non è proprio vero che "here document"
stampa tutto esattamente com'è...

Grazie
M.

Re: "here document" in PHP

Inviato: mar 21 ott 2008, 12:59
da conraid
samiel ha scritto:Piccola curiosità cui non ho trovato risposta nei manuali.
L'opzione "here document" (<<<HERE ... HERE;) di PHP
dovrebbe stampare tutto alla lettera, un po come fanno
in LaTeX gli ambienti verbatin e alltt. Però se ci infilo
diciamo "$variabile", quella stringa non viene affatto
visualizzata. Allora non è proprio vero che "here document"
stampa tutto esattamente com'è...

Grazie
M.
Stampa il contenuto della variabile $variabile, come farebbe in perl per esempio con <<<"HERE" (il perl ha anche 'HERE', il php no)
E' come fare echo "..."; solo che puoi usare le virgolette al suo interno

Se vuoi stampare proprio $variabile, allora devi scrivere \$variabile


UPDATE
http://it.php.net/manual/en/language.ty ... ax.heredoc

Dalla 5.3.0 ci sarà anche nowdoc, cioè
echo <<<'HERE'

che non interpreterà le variabili

Re: "here document" in PHP

Inviato: mar 21 ott 2008, 13:22
da aschenaz
Se non ricordo male, l'heredoc non interpreta le costanti. Nel caso, bisogna
assegnare il valore della costante ad una variabile prima dell'heredoc...

Re: "here document" in PHP

Inviato: mar 21 ott 2008, 19:58
da samiel
E non va nemmeno a capo se non si mette il classico <br>
Forse sono io che pensavo che agisse, appunto, cime verbatim di LaTeX...

M.

Re: "here document" in PHP

Inviato: mar 21 ott 2008, 20:49
da conraid
samiel ha scritto:E non va nemmeno a capo se non si mette il classico <br>
Forse sono io che pensavo che agisse, appunto, cime verbatim di LaTeX...

M.
A capo ci va mauro, quello è un discorso di HTML non di output del comando
Anche se scrivi una pagina normale chiamate prova.html e ci metti dentro

Codice: Seleziona tutto

prova di un
testo
il browser ti mostrerà

Codice: Seleziona tutto

prova di un testo
quel che dici tu in html sarebbe con il tag < pre >

Re: "here document" in PHP

Inviato: mar 21 ott 2008, 22:40
da samiel
Esatto. Solo che , appunto, avevo frainteso
pensando, lo ripeto, a un comportamento analogo
a Verbatim di LaTeX. Mentre PHP fa cose diverse
e la visualizzazione ancora diverse...
Grazie
M.

Re: "here document" in PHP

Inviato: mer 22 ott 2008, 7:11
da aschenaz
Il vantaggio dell'heredoc, in pratica, lo vedi quando hai una parte di
codice mista html/php abbastanza consistente, così da non dover
ricorrere continuamente all'escape di virgolette (o alla concatenazione).
La formattazione, come ha già detto conraid, la mantiene solo a
livello di codice, non di output. Quello che andrebbe normalmente
in html lo devi mantenere...