104 votes

Pourquoi les fonctions et les méthodes en PHP sont-elles insensibles à la casse ?

Les fonctions et les méthodes en PHP sont insensibles à la casse, comme le montre l'exemple suivant.

function ag()
{
    echo '2';
}

Ag();
class test {
    function clMe()
    {
        echo 'hi';
    }
}

$instance = new test;
$instance->clme();

Mais ce n'est pas le cas avec les variables. Quel est le raisonnement ?

96voto

Shailesh Kumar Points 2484

Permettez-moi de citer Interview - Le créateur de PHP, Rasmus Lerdorf

La première version de PHP était un simple ensemble d'outils que j'ai mis en place pour mon site Web et pour quelques projets. L'un de ces outils permettait d'enregistrer les frappes dans une base de données mSQL, un autre servait d'interpréteur de données de formulaire. J'ai fini par avoir une trentaine de petits programmes CGI différents écrits en C avant d'en avoir marre, et je les ai tous combinés dans une seule bibliothèque C. J'ai ensuite écrit un analyseur très simple qui récupérait les balises des fichiers HTML et les remplaçait par la sortie des fonctions correspondantes dans la bibliothèque C.

L'analyseur syntaxique simple s'est lentement enrichi de balises conditionnelles, puis de balises en boucle, de fonctions, etc. À aucun moment je n'ai pensé que j'écrivais un langage de script. Je ne faisais qu'ajouter un peu de fonctionnalité à l'analyseur de remplacement de macro. Je continuais à écrire toute ma véritable logique commerciale en C.

J'ai lu quelque part que puisque toutes les fonctions introduites ressemblaient essentiellement à des balises dans un document HTML et que les balises HTML étaient insensibles à la casse, il a choisi que les noms de fonctions en PHP soient insensibles à la casse. Plus tard, cette caractéristique est restée dans le langage.

34voto

Pascal MARTIN Points 195780

Oui, les noms des fonctions et des méthodes ne sont pas sensibles à la casse.

Et oui, les noms des variables sont sensibles à la casse.

Je ne suis pas sûr qu'il y ait une raison à cela - sauf que c'est ainsi depuis longtemps et que cela reste ainsi, pour des raisons de rétrocompatibilité.


À titre de référence, voici quelques liens / citations vers diverses pages du manuel :

Pour les fonctions ( en citant ) :

Note : Les noms des fonctions sont insensibles à la casse, bien qu'il soit généralement d'appeler les fonctions comme elles apparaissent comme elles apparaissent dans leur déclaration.

Et les méthodes ne sont pas beaucoup plus que des fonctions dans les objets - surtout quand on pense à PHP 4 et à la rétrocompatibilité.

Et, pour les variables ( en citant ):

Les variables en PHP sont représentées par un signe dollar suivi du nom de la variable la variable. Le nom de la variable est sensible à la casse.

Et les propriétés des objets ne sont pas beaucoup plus que des variables dans les objets -- même remarque à propos de PHP 4 et de la rétrocompatibilité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X