foreach ($ articoli come & $ item) considerati dannosi?

3

È considerata una cattiva pratica passare articoli in un array PHP per riferimento anziché per valore?

Documentazione pertinente: link

    
posta Kevin Burke 01.05.2012 - 05:01
fonte

3 risposte

6

Non è dannoso se è appropriato per il caso d'uso.

Se sei preoccupato:

foreach($foo as &$bar) {
    $bar['addthis'] = 'x'; 
}

Può anche essere scritto come:

foreach($foo as $i => $bar) {
    $foo[$i]['addthis'] = 'x'; 
}

Si noti che come indicato da animus in un commento, e il grande e grosso avviso sulla pagina dei documenti , se esci un riferimento che giace intorno e riutilizza il nome della variabile - stai per aggiornare ciò che stai facendo riferimento.

Ciò non significa che i riferimenti siano dannosi; significa solo imparare come usare uno strumento e poi usarlo correttamente.

    
risposta data 01.05.2012 - 09:30
fonte
1

No, non è considerato una cattiva pratica. Se fosse in qualche modo cattivo, allora non esisterebbe in primo luogo.

Ciò che è male è quando i programmatori usano impropriamente i riferimenti o li usano dove non sono necessari.

Non puoi rispondere semplicemente se è cattivo o buono da usare o evitare riferimenti. Otterrai sempre alcuni ragazzi nel campo "Non usare i riferimenti" che fornirà uno scenario catastrofico in cui il tuo codice esploderà, e poi avrai un altro campo di persone che mostrano i risultati dei benchmark con e senza riferimenti.

Bottom line: usali dove appropriato. Non fare affidamento su blog casuali che inventano uno scenario fasullo in cui i riferimenti sono negativi, soprattutto se tale scenario non ha un'applicazione reale.

    
risposta data 01.05.2012 - 16:27
fonte
0

I riferimenti sono un modo per avere più variabili che fanno riferimento allo stesso contenitore di variabili usando nomi diversi, quindi qualunque nome tu stia usando un'operazione su quella variabile avrà sempre un effetto sugli altri. In genere evitiamo References . Per i dettagli vedi un link
Non usare riferimenti PHP

    
risposta data 01.05.2012 - 12:13
fonte

Leggi altre domande sui tag