Risposta breve, sì con un if.
Più specificamente, alcuni filesystem sono case-sensitive (foo.php e FOO.PHP sarebbero file diversi), mentre altri no (foo.php e FOO.PHP sarebbero lo stesso file).
Se stai sviluppando su un sistema con un filesystem con distinzione tra maiuscole e minuscole (gran parte dei filesystem Linux, HFS + in modalità maiuscole e minuscole, ecc.) non dovresti avere problemi.
Se, tuttavia, si sta lavorando su un sistema con un filesystem insensibile alle maiuscole e minuscole (NTFS, HFS + nella sua configurazione predefinita, ecc.), è necessario tenere un occhio attento ai nomi dei file. È possibile incorrere in problemi in cui un file viene caricato su una macchina ma causa un errore di file non trovato su un'altra. A seconda della criticità del file, questo può causare problemi che vanno dai fastidi agli errori di show-stop, ma causano problemi.
Se stai sviluppando su Linux, probabilmente non devi preoccuparti di questo. In caso contrario, probabilmente lo farai, ma non c'è nulla che ti impedisca di usare nomi di file in cammello.
EDIT : se utilizzi un caricatore automatico, in genere è consigliabile che l'intestazione del nome del file della classe corrisponda all'intelaiatura del nome della classe PHP. Il caricatore automatico ottiene automaticamente il nome della classe come argomento e deve capire quale file aprire per trovarlo. Ovviamente puoi eseguire qualsiasi cosa che ti piace come un autoloader per risolvere il nome della classe, ma la maggior parte dei caricatori automatici esegue il mapping del nome della classe su un nome file. A meno che non si cambi esplicitamente il caso del nome della classe nel caricatore automatico, ciò significa che una richiesta per un nuovo FooClass probabilmente tenterà di aprire un file FooClass.php.
Il miglior consiglio che posso offrire è usare qualsiasi convenzione di custodia che desideri, ma assicurati di testarlo su file system sensibili al maiuscolo e maiuscolo / minuscolo se possibile.