DIRECTORY_SEPARATOR, quando usarlo?

DIRECTORY_SEPARATOR è una costante predefinita di PHP che contiene il carattere utilizzato dal sistema operativo su cui gira il server per comporre i percorsi dei file.

Windows infatti utilizza il carattere backslash \ (ad esempio ‘C:\script.php’) mentre gli altri sistemi operativi (Unix, Linux, Mac OS X, ecc.) utilizzano il carattere slash / (es.: /home/www/apache/bin/php.ini).

Con DIRECTORY_SEPARATOR quindi possiamo scrivere del codice PHP che risulterà indipendente dal sistema operativo su cui dovrà girare.

In realtà però è inutile utilizzare DIRECTORY_SEPARATOR per costruire i percorsi dei file, infatti basta usare sempre il carattere slash / poiché Windows lo riconosce comunque come un separatore di path.

La vera utilità di DIRECTORY_SEPARATOR si ha nell’analisi dei percorsi dei file restituiti dalle funzioni PHP o recuperati dal sistema operativo. In questi casi non si conosce a priori quale carattere verrà usato come separatore e quindi DIRECTORY_SEPARATOR scioglie ogni dubbio permettendo, ad esempio, di eseguire un explode(DIRECTORY_SEPARATOR, $path) certi che funzionerà su qualsiasi sistema operativo.