J'étais en train de fouiller dans du code et j'ai trouvé des appels mySQL_fetch_array
. PHP est-il sensible à la casse sur les noms de fonctions? Je me souviens avoir lu ceci quelque part mais je n'arrive pas à y trouver de référence.
php
function
case-sensitive
Ben Dauphinee
la source
la source
Réponses:
Je cite ceci :
Donc, il semble que les fonctions définies par l'utilisateur ne sont pas sensibles à la casse, il y a eu un vote pour rendre les fonctions / objets sous PHP5 sensibles à la casse.
la source
Non.
Les fonctions PHP ne sont pas sensibles à la casse.
la source
TL; DR: les noms de classe sont insensibles à la casse, mais utilisent toujours la même casse que dans la déclaration (comme pour les fonctions). En outre, l'instanciation de classes avec une casse différente telle qu'elles ont été définies peut entraîner des problèmes avec les chargeurs automatiques.
De plus, les noms de classe sont insensibles à la casse:
Cela produit:
Le problème est l'utilisation de chargeurs automatiques et de systèmes de fichiers sensibles à la casse (comme ext2 / 3/4), en ce sens que vous devez appeler le nom de la classe avec la même casse que le fichier contenant la classe est nommé (pas comment le nom de la classe est réellement casé), ou utilisez
strtolower
:Le fichier de classe:
La fonction de chargeur automatique (
__autoload
ou une fonction pour s'enregistrerspl_autoload_register
)Maintenant avec ce code:
Vous pouvez faire ce travail (c.-à-d. Avoir effectivement des noms de classe insensibles à la casse en utilisant un chargeur automatique) si vous avez ajouté un appel à
strtolower()
dans le code du chargeur automatique, mais comme pour les fonctions, il est simplement préférable de référencer une classe de la même manière qu'elle est déclarée, avoir le nom de fichier avec la même casse que le nom de la classe, utiliser des chargeurs automatiques et oublier d'utiliserstrtolower
et autres.la source
Non, ils ne sont pas sensibles à la casse, cependant, vous devez toujours utiliser la casse qui se trouve dans le manuel, par souci de cohérence.
Cependant, les variables sont sensibles à la casse.
la source
En PHP, les variables sont sensibles à la casse mais les fonctions n'ont aucun problème comme celui-ci. Vous pouvez utiliser les instructions suivantes pour afficher la sortie, toutes afficheront le même résultat.
D'un autre côté, si vous changez la sensibilité à la casse des variables, l'erreur s'affichera.
Exemple:
Production:
la source
Et les noms de méthodes sont également insensibles à la casse. par exemple:-
production:
la source
En conclusion de la réponse de chacun. Même si PHP n'exige pas la cohérence de la casse des caractères dans toutes les instances, même jusqu'à présent dans PHP5.
La meilleure pratique sera
Vous ne savez jamais peut-être qu'un jour le vote passera et vous épargnerez le cauchemar de changer les cas dans vos applications créées il y a quelques années qui nécessitent une mise à jour en PHP.
J'espère que cela aide de toute façon.
la source
Peut-être que c'est trop tard, mais ...
Tout le monde le sait déjà ici: le moteur PHP ne se soucie pas de la casse des lettres.
Et il y a le vote sur PHP bugtracker, où la majorité dit: "Oui, je suis pro case sensetivity".
Mais je suis contre, car dans mon framework MVC, j'appelle l'action du contrôleur:
$ controller et $ action sont exécutés à partir de l'URL tels quels.
Pensez, si un utilisateur publie un lien vers mon site: https: // mon-site / MyPartnerController / MyPartnerGallery
tandis que la classe est nommée myPartnerController ...
Cela signifie que personne n'accède jamais à cette page si les noms de classes et de fonctions de PHP sont sensibles à la casse.
Oui, j'utilise toujours tous les noms du code tels que déclarés. Mais je prie pour qu'ils ne rendent jamais les noms des fonctions et des classes sensibles à la casse.
Je vous remercie!
la source