Ho letto da qualche parte, e non ricordo dove, questo echoè un modo più efficiente di produrre dati allora print.
Perché Drupal core usa printcosì tanto? C'è qualche motivo speciale dietro questo?
Ho letto da qualche parte, e non ricordo dove, questo echoè un modo più efficiente di produrre dati allora print.
Perché Drupal core usa printcosì tanto? C'è qualche motivo speciale dietro questo?
Risposte:
echoè solo più veloce negli ambienti accademici. La differenza è molto marginale. Un rapido benchmark che ho appena fatto: il tempo di recuperare una riga da una tabella con più di 2000 nodi è di 1 unità.
Per ottenere un miglioramento di 1 unità, avrei bisogno di sostituire circa 3.700.000 (oltre 3 milioni) printdichiarazioni con echo. In altre parole, se si desidera migliorare le prestazioni, questo non è certo il punto di partenza.
Visto che printpuò essere utilizzato in una gamma molto più ampia di casi echo, il primo presenta alcuni vantaggi. Ti lascia tre opzioni:
printechoove possibile e eseguire il fallbackprintechosempre e refactificare il codice se echonon può essere utilizzato, per usarloDrupal è andato in default sul primo.
Per rispondere alla tua vera domanda sul perché questo è stato scelto: non lo era. È semplicemente cresciuto in questo modo.
if (! print some_method() ) {print some_other_method()}. Poiché la stampa restituisce un valore VERO se in realtà ha stampato qualcosa. L'eco non restituisce nulla, motivo per cui è anche più veloce. Un altro esempio che vedrai è return print $somevaluealla fine di un metodo per restituire lo stato.