Quando si utilizza un tipico ciclo for
, PHPStorm suggerisce di modificarlo per prestazioni migliori. Non capisco davvero il suggerimento. Come dovrei cambiarlo?Migliora PHP 'for' loop
risposta
for($i = 0; $i <= count($data); $i++){}
In questo esempio per ogni iterazione deve essere nuovamente impostato su count($data)
.
for($i = 0, $iMax = count($data); $i <= $iMax; $i++){}
In questo esempio ha solo bisogno di count($data)
volta.
Questa è la differenza.
Per riferimento vedere [questo post] (http://stackoverflow.com/a/12847555/2865814) –
Presumibilmente ciò presuppone che ' $ data' non cambia la lunghezza all'interno del ciclo, o i due sarebbero diversi. – abligh
@abligh Se '$ data' cambia lunghezza all'interno del ciclo for, probabilmente non si dovrebbe usare un ciclo for in primo luogo. Potrei essere di parte, però, non penso che dovresti mai usare un ciclo for. – Odalrick
Se si esegue il count()
all'interno del vostro for
ciclo, allora è eseguito ogni iterazione, e chiamare la funzione è un sovraccarico di prestazioni.
Se invece si chiama count()
prima del ciclo for
e assegnare il risultato a una variabile, quindi confrontare con la variabile nel ciclo for
, non haver l'overhead chiamata di funzione, quindi è più veloce
Avendo il ciclo nel modo in cui si esegue, ogni iterazione deve valutare count($data)
. Se nella lista ci sono molti articoli, potrebbe essere necessario un po '(relativamente) per contare quegli articoli, e deve farlo ogni volta.
Il suggerimento di immersione è impostare una variabile sul valore di conteggio ($ dati) all'inizio e quindi utilizzare tale variabile come limite del ciclo, quando viene valutata solo una volta.
questo può essere fatto in due modi:
$loopMax = count($data);
for ($i = 0; $i <= $loopMax; $i++) {
// Your code here
}
O
for ($i=0, $loopMax = count($data); $i <= $loopMax; $i++) {
// your code here
}
Quello superiore è ovviamente preferito se si sta andando a scorrere più volte per qualche motivo. Il fondo è preferito in altre occasioni perché dovresti sempre cercare di limitare l'ambito delle tue variabili. – corsiKa
L'uso di quello superiore non si limita a quando lo si itera su più volte, sarebbe anche utile se l'applicazione, ad esempio, ha bisogno di generare il conteggio; forse per qualche impaginazione o simili. Ma sì, l'ambito delle variabili dovrebbe essere limitato dove necessario. – gabe3886
- 1. Empty for loop - for (;;)
- 2. Parallel For-Loop
- 3. Ottimizza JSonArray for Loop
- 4. javascript/jQuery - For Loop
- 5. Enhanced For Loop Exception
- 6. Postgres FOR LOOP
- 7. Chiusure in loop for
- 8. Postgres - array for loop
- 9. Weird for loop statement
- 10. Coffeescript for loop
- 11. BOOST_FOREACH versus for loop
- 12. Bash For-loop sulla directory
- 13. For-In Loop multiple condizioni
- 14. Scoping in Python 'for' loop
- 15. for-loop, incremento per doppio
- 16. JavaScript for loop index strangeness
- 17. Parallel for-loop in Windows
- 18. Python for-loop to list comprehension
- 19. Python for-loop senza indice e articolo
- 20. C++ for-loop - size_type vs. size_t
- 21. Contatore loop Python in un ciclo for
- 22. Java: array "Anonimo" in for-each-loop
- 23. Codice in for-loop vs if-else
- 24. Il costrutto loop for/in conserva l'ordine?
- 25. PHP PDO for Dummies
- 26. Perché questo migliora le prestazioni?
- 27. Spiega Alternative PHP For Loop Sintassi: for ($ i = 1, $ j = 0; $ i <= 10; $ j + = $ i, stampa $ i, $ i ++);
- 28. Per tabella loop in PHP
- 29. per loop vs while loop vs ciclo foreach PHP
- 30. Problemi di PHP while loop
Qual è il suggerimento PhpStorm quando si fa clic su ** ** di più? Sono curioso di sapere perché PHPStorm lo suggerisce. – jedema
c'è solo 'analisi per cicli e riporta l'utilizzo di blablabla' :) – simPod
' foreach' e dimenticare – Kzqai