Citando il manuale PHP
control-structures intro
dato che l'istruzione foreach è definita comeIntroduzione
Qualunque script PHP è costituito di una serie di istruzioni. Una istruzione può essere una assegnazione, una chiamata di funzione, un ciclo, una istruzione condizionale o anche una istruzione che non fa nulla (una istruzione vuota). Le istruzioni di norma terminano con un punto e virgola. In più, le istruzioni possono essere raggruppare in un gruppo-istruzione racchiudendo un gruppo di istruzioni con le parentesi graffe. Un gruppo-istruzioni è essa stessa una istruzione.
control-structures foreach
consentendo l'esecuzione ciclica di una istruzione e, data la definizione esposta precedentemente, per cui "un gruppo-istruzioni è essa stessa una istruzione", è possibile sostituire alla singola istruzione un gruppo-istruzioni.codice:foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
Originariamente nel tuo codice eseguivi due istruzioni, if+closedir, ma dato che ti ho spostato il closedir dentro il gruppo-istruzioni del ramo then dell'istruzione if, l'istruzione if è rimasta la sola ad essere eseguita dal ciclo, da cui le parentesi graffe in tale circostanza diventano superflue.
Quindi, quando utilizzare le parentesi graffe? Ogni qual volta una struttura di controllo da la possibilità di inserire nei suoi rami una istruzione ma abbiamo necessità di inserirne più di una. In tal caso il gruppo di istruzioni deve essere racchiuso tra parentesi graffe.
Racchiudere tra parentesi graffe una sola istruzione non è un errore, ma quando inizi a scrivere tanto codice e ti accorgi che 20/30 righe sono di parentesi graffe che si chiudono e che non aggiungono nulla codice, un pensierino sulla loro rimozione ti scappa.

Rispondi quotando