echo() - concatenazione e parametri multipli [?]

xshell

Nuovo Utente
17 Lug 2008
20
0
0
Ciao. Scusate per la domanda che potrebbe essere banale. Non ho mai prestato attenzione a questa differenza, ma ho notato che in alcuni script, la funzione echo() contiene stringhe divise da punti, altre volte da virgole. In un primo momento ho pensato fosse solo una questione di gusti, ma documentandomi, ho letto che, dividendo le stringhe con un punto, si effettua una concatenazione, mentre con la virgola si passano paramentri multipli... cosa significa tutto ciò? E' importante?
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Almeno una differenza tra i due approcci esiste di sicuro e riguarda le precedenze con cui viene risolta la chiamata alla funzione echo().
Per cercare di essere il più chiaro possibile ti consiglio di guardare questo script, prevedere quale sarà il risultato in output e poi provare a farlo girare...

PHP:
<?php

function funzione() {
  echo 'funzione ';
  return 'risultato';
}

print("<p>Echo con parametri</p>");

echo "Echo: ", funzione();

print("<p>Echo con concatenazione</p>");

echo "Echo: " . funzione();

?>
 

xshell

Nuovo Utente
17 Lug 2008
20
0
0
Grazie, adesso ho quasi capito: passando parametri multipli con la virgola, tutto è eseguito in sequenza, mentre con la concatenazione si dà precedenza alle funzioni... ma in quest'ultimo caso non ho afferrato quello che lo script fa...

PHP:
funzione()
{
    echo "Funzione ";
    return "risultato";
}

echo "Echo: ". funzione();

Stampa a video: risultato Echo: Funzione

Ma con quale ordine? Prima il valore di ritorno della funzione, poi la stringa e poi la funzione?

P.S: Scusa se ho risposto tardi, ma pensavo che non avrei ricevuto risposta...
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Nella concatenazione, come hai giustamente detto, devono prima essere valutate le funzioni per poter concatenare il risultato agli altri elementi.
Quindi in questo caso la prima cosa che fa il PHP è richiamare la funzione funzione() che stampa a video "Funzione ", quindi può concatenare il risultato di funzione() a "Echo: ".

Per cui:
- Esegue funzione() che stampa Funzione
- Concatena gli elementi Echo:
e il risultato della funzione risultato

Da questo si ottiene che il risultato finale è: Funzione Echo: risultato
 

xshell

Nuovo Utente
17 Lug 2008
20
0
0
Veramente eseguendo lo script da:

risultato Echo: Funzione

prima scrive "risultato" e poi "Funzione"...
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Per curiosità, che versione di PHP utilizzate? Io ho la 5.2.6 e l'output che mi da lo script completo è questo...

Echo con parametri
Echo: funzione risultato

Echo con concatenazione
funzione Echo: risultato
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Direi che sta quasi diventando una disputa filosofica, dove ognuno ha una sua verità soggettiva e la verità assoluta non esiste...

Esaminiamo questa porzione di codice:

PHP:
funzione()
{
    echo "Funzione ";
    return "risultato";
}

echo "Echo: " . funzione();

Viene dichiarata una funzione funzione() (largo alla fantasia) che ha come compito di stampare a video la stringa "Funzione " e che ritorna come risultato "risultato".

Alla base di tutto c'è la concatenazione di stringhe. Per poter concatenare il risultato di funzione() a "Echo", per prima cosa il PHP deve eseguire funzione(), giusto? E che cosa fa funzione()?! Stampa a video "Funzione ", e ritorna "risultato" che verrà concatenato a "Echo" e quindi il risultato della concatenazione viene stampato a video.
Per cui, secondo questo ragionamento:
1) Stampa a video "Funzione "
2) Concatenazione "Echo: " . "risultato"
3) Stampa a video "Echo: risultato"

E quindi il risultato finale dovrebbe essere:

Funzione Echo: risultato

O sbaglio?

Il fatto di voler sapere le versioni di PHP è solo per capire se ci possono essere delle discrepanze a livello di precedenze negli operatori tra diverse versioni...
 
Ultima modifica:

xshell

Nuovo Utente
17 Lug 2008
20
0
0
Trogo ha scritto:
Direi che sta quasi diventando una disputa filosofica, dove ognuno ha una sua verità soggettiva e la verità assoluta non esiste...

Anch'io utilizzo la versione 5.26... ma quando eseguo lo script in localhost con Apache 2.29 mi stampa prima il valore di ritorno...
non sò il perché... infatti sono io che ho posto questa domanda :D.
 
Discussioni simili
Autore Titolo Forum Risposte Data
I stampare una stringa echo PHP 2
K Cambiare font size su echo stringa variabile PHP 24
Cosina Reindirizzare a nuova pagina dopo echo copy PHP 4
M [PHP] Istruzione "echo" all'interno di codice html PHP 2
A php echo get con variabili PHP 4
Cosina [PHP] echo meta PHP 18
ANDREA20 [PHP] Echo login PHP 2
H problema input e echo più linee di una tabella mysql PHP 13
elpirata Stampare a video in echo table il risultato di una query PHP 4
L echo - andar a capo nel codice html generato dal server PHP 3
I Problema con echo PHP 6
P help variabile js concatenata a echo php Javascript 0
C Echo variabile prima di valorizzazione PHP 2
N Cancellazione Immagine Utente e Echo conferma cancellazione PHP 2
S Incorporare codice java in echo php PHP 4
D echo "Salve"; Presentati al Forum 2
valient13 Errore nel echo PHP 2
S problema doppi inviiiiiiii con <?php echo $_SERVER['PHP_SELF']; ?> PHP 5
M tabelle con i css e nn tramite echo"<table border='1'> HTML e CSS 1
M echo che dipende dall'estrazione o meno di un record PHP 4
S aiuto echo href PHP 2
Z Nome tabella dentro ECHO con UNION PHP 1
I Cambiare colore caratteri in echo PHP 1
L echo e <img src PHP 10
G echo valori nulli PHP 3
G echo primo record fetch_assoc PHP 2
borgo italia echo PHP 7
chika chan echo img PHP 6
Linchiamoci form, problemi con echo & include PHP 5
spaceboy help tag echo PHP 1
otto9due Concatenazione variabili jQuery 1
T Concatenazione stringhe Classic ASP 1
felino Form action costum e parametri in queryString WordPress 1
P Passare solo alcuni parametri a script per CSV PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
P jButton1ActionPerformed passare parametri ad altra classe Java 2
Fendo59 Passare parametri con metodo POST a una pagina in un frame PHP 0
I Passare dei parametri in javascript PHP 0
romeocharly in win 10 mi si apre una finestra di configuraziuone di parametri di una cam errata Windows e Software 2
G Parametri IP Cam e Videosorveglianza 2
filograndipad2 Da dove arrivano i parametri degli event handler? Sviluppo app per Android 1
L Come sovrascrivere i parametri di Bootstrap CMS (Content Management System) 0
Andy56 Parametri funzioni in Java Java 0
L [PHP] Problema creazione query a numero di parametri variabile PHP 6
A passare parametri ad un file php prima di utilizzare $.get jQuery 1
F [ASP] passaggio parametri form metodo post Classic ASP 6
L Settaggio parametri per invio email Ip Cam Sricam IP Cam e Videosorveglianza 13
napuleone [Javascript] cambiare i parametri di stampa con js Javascript 2
M [PHP] Algoritmo con parametri PHP 1
P infinite scroll: quali i parametri corretti? WordPress 0

Discussioni simili