-
Dubbi sulla sintassi php
Salve raga!
La domanda è piuttosto da nubbio ma tant'è che m'è venuto il dubbio e quindi sono qui a chiedere.
Questo è il codice che mi ha incuriosito:
Codice PHP:
echo '<div style="float:left; margin-right: 4px;"><a href="', $board['href'], '" name="b', $board['id'], '"><img src="' . $settings['default_images_url'] . '/ImagesOnBoard/' . $board['image'] . '" alt="' . $board['name'] . '" title="' . $board['name'] . '" /></a></div>';
Ho preso in esame questo:
Codice PHP:
href="', $board['href'], '"
e questo:
Codice PHP:
alt="' . $board['name'] . '"
il primo è apice+virgola+spazio - il secondo invece apice+spazio+punto+spazio
Anche cambiando da uno a l'altro funziona regolarmente quindi mi chiedo:
"qual'è la differenza? (con tutte le possibili domande che verranno di conseguenza)" :oops:
-
il risultato può essere identico, ma il concetto è diverso: echo è un comando che prende una sequenza di parametri separati da virgole e li stampa a schermo. Il punto è la concatenazione fra stringhe.
La differenza fra i due è quindi che il primo stampa una stringa, poi un'altra, poi un'altra ancora. Il secondo metodo unisce le varie parti della stringa e le stampa in un unico blocco.
Differenze pratiche alla fine non ce ne sono, ed anche in termini di prestazioni sono molto simili. La sintassi con le virgole è in teoria più veloce (non devi creare nuove stringhe attaccandole assieme), ma spesso si consiglia di creare tutto l'output, metterlo in una stringa e fare un solo echo alla fine - a meno di non avere pagine enormi.
Alla fine, non è quindi un punto per cui vale la pena sbattersi senza fine per ottimizzare :wink:
-
Grazie mille dreadnaut, non è una questione di "ottimizzazione" (che comunque non fa certo male) comunque.
Era solo per capire la reale differenza fra i due metodi, cioè io apporto le modifiche al codice del forum con una serie ripetuta di ctrl+c/ctrl+v (apportando le dovute modifiche) e quindi mi capita di trovare spesso tratti di codice prima sconosciuti (di solito cerco spiegazione su google ma in questo caso non riuscivo a trovare una spiegazione) :wink: