1) perchè se specifichi path relative, è da A che devi partire visto che è A che carica... se vuoi che C sia caricato correttamente in relazione a B, da B devi richiamare C usando una path assoluta tipo

Codice PHP:
//in B.php
require dirname(__FILE__) . DIRECTORY_SEPARATOR 'C.php'
http://php.net/manual/en/function.dirname.php (esempio utenti 1)

2)

come da link http://php.net/manual/en/language.op...comparison.php l'uso di == ti assicura che le stringhe siano uguali. Purtroppo non ho idea di come faccia il test

strcmp, come leggi sempre qui, http://it.php.net/manual/en/function.strcmp.php fà sicuramente un controllo binario delle due stringhe, e ritorna più informazioni di ==, cioè ti dice se sono uguali o quale delle due è più grande dell'altra

immagino che ==,>,< applicate ad una stringa diano gli stessi risultati di strcmp, ma non ne sono sicuro (ad eccezzione che <,> tornano un boolean, e strcmp torna un intero)

come suggerisce il nome, strcmp è la tua soluzione se devi fare il sort di stringhe

quale dei due sia più efficiente non saprei, dovresti analizzare l'implementazione per capirlo...puoi divertirti a fare dei test (possibilmente con un numero consistente di stringhe da comparare) e vede con quale metodo l'algoritmo ci mette di meno, ma credo che sia una differenza minima e irrilevante.

Lo switch penso che segua la logica dell'==

3) No php non supporta enum, puoi vedere qui per un'idea alternativa:

http://stackoverflow.com/questions/254514/php-and-enums

http://stackoverflow.com/questions/3...ructs-or-enums

Poi che cosa legga php dal db non ne ho idea, immagino il valore dell'enum, ma non so, mai usato enum in un db...