Newsgroup: it.comp.www.php
Titolo: accorgimenti in php su while  e uso di list vs foreach

per ciclare i file e directory mi è stato suggerito questo:
while($file = readdir($handle))
pero' ho trovato anche
while (false !== ($file = readdir($handle)))
credo qusto ha il vantaggio che se tra le artelle c'è una che si chiama 
0(zero) o false il ciclo non si interrompe:
è cosi? o serve ad altro?
--------------
al posto di :
list() = each()
è preferibile usare foreach?
come si fa a sapere quali sono le funzioni deprecate o che lo saranno in 
futuro?
comunque list credo non lo è, perchè la vedo usare in molti esempi
--------------
while($file = readdir($handle))
if($file != '.' && $file != '..')
in un'altro esempio ho visto usare le doppie virgolette "."
sui punti: cosa cambia?
inoltre il . e il doppio punto .. indicano i lvelli superiori
delle directory? dove e spiegato bene questo?
--------------------
thank you

 delle directory? dove e spiegato bene questo?
In un qualsiasi tutorial riguardante la struttura dei file system, non
riguarda il PHP.
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.

>sui punti: cosa cambia?
mi riferivo al fatto che ho visto usare nell'
  if($file != '.' && $file != '..')
tra gli elementi che racchiudono i punti
sia ' una sola virgoletta come sopra
ed anche " come sotto
  if ($file != "." && $file != "..")
qual'è la differenza?

 qual'è la differenza?
sia gli apici che le virgolette delimitano una stringa.
la differenza consiste nel fatto che una stringa delimitata da virgolette
viene parsata prima di essere utilizzata da una funzione (o da un costrutto,
come echo), una con gli apici no.
esempio:
$var = 'val';
echo "$var = $var"; // stampa: val = val
echo '$var = $var'; // stampa: $var = $var
echo "$var = ".$var; // stampa val = val
echo '$var = '.$var'; // stampa $var = val
non so se ti e' chiaro
nel caso da te indicato il punto e il doppio punto sono messi tra virgolette
perche' si vuole confrontare il loro valore come stringa (ovvero controllare
che $file non sia uguale alla stringa contenente il carettere punto, o due
caratteri punto consecutivi).
siccome la stringa non contiene elementi parsabili (come la variabile $var
dell'esempio precedente) il risultato di "." e' lo stesso di '.'
il risultato, ma non il lavoro di intepretazione: infatti mettendo il punto
tra virgolette il php tentera' di parsare cmq la stringa (inutilmente,
perche' non c'e' niente di parsabile). personalmente in questi casi
preferisco usare gli apici (e in linea di massima usare sempre gli apici e
concatenare le variabili col punto, come nell'ultimo echo dell'esempio
precedente)

 non so se ti e' chiaro
ok , chiarissimo
l'ultimo esempio 4 è
echo '$var = '.$var; // stampa $var = val
c'era un ' di troppo.
non capisco una cosa: se come nell'esempio 3 la variabile $var
restituisce il suo valore senza virgolette, perchè sui manuali,
nel caso si vuol parsare tale variabile consiglia di usare le virgolette
curiosità : per il termine parsare (ora non ho un vocabolario sotto 
mano) ma un sinonimo è analizzare?

 mano) ma un sinonimo è analizzare?
in effetti non esiste il verbo parsare, viene da parser:
http://www.demauroparavia.it/79726
il manuale parla di parsing delle stringhe delimitate da virgolette, nel
caso specifico si riferisce al fatto che se la stringa contiene una
variabile ne viene stampato il valore.