PHPの関数とメソッドは、次の例に示すように大文字と小文字を区別しません。
function ag()
{
echo '2';
}
Ag();
class test {
function clMe()
{
echo 'hi';
}
}
$instance = new test;
$instance->clme();
しかし、変数の場合はそうではありません。根拠は何ですか?
インタビュー-PHPの作成者、Rasmus Lerdorf から引用させてください
PHPの最初のバージョンは、私が自分のWebサイトといくつかのプロジェクトのためにまとめたツールのシンプルなセットでした。あるツールはmSQLデータベースへのファンシーヒットロギングを行い、別のツールはフォームデータインタープリター.Cで書かれた約30種類の小さなCGIプログラムでうんざりして、それらすべてを1つのCライブラリに結合し、HTMLファイルからタグを選択する非常に簡単なパーサーを作成しましたそれらをCライブラリの対応する関数の出力に置き換えます。
単純なパーサーは、条件タグ、ループタグ、関数などを含むように徐々に成長しました。スクリプト言語を書いているとは思わなかった。マクロ置換パーサーに機能を少し追加するだけでした。私はまだCですべての実際のビジネスロジックを書いていました。
導入されたすべての関数は本質的にHTMLドキュメントのタグのように感じ、HTMLタグは大文字と小文字を区別しないため、彼はPHPの大文字と小文字を区別しない関数名を選択しました。言語で残りました。
はい、関数とメソッドの名前は大文字と小文字が区別されません。
はい、変数名では大文字と小文字が区別されます。
その理由があるのかどうかはわかりませんが、長い間このようになっていたことを除いて、後方互換性の理由からそうです。
参考として、マニュアルのさまざまなページへのリンク/引用をいくつか示します。
関数の場合( quoting ):
注:関数名は大文字と小文字を区別しませんが、通常は宣言に現れる関数を呼び出すのが適切な形式です。
そして、メソッドはオブジェクト内の関数以上のものではありません。特にPHP 4と後方互換性について考えるときは。
そして、変数の場合( quoting ):
PHPの変数は、ドル記号とそれに続く変数名で表されます。変数名は大文字と小文字が区別されます。
そして、オブジェクトのプロパティはオブジェクトの変数にすぎません-PHP 4と後方互換性についての同じ意見。