113

次の例に示すように、PHP の関数とメソッドは大文字と小文字を区別しません。

function ag()
{
    echo '2';
}

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

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

しかし、変数の場合はそうではありません。根拠は何ですか?

4

2 に答える 2

105

インタビューから引用させてください– PHP の作成者、Rasmus Lerdorf

PHP の最初のバージョンは、自分の Web サイトといくつかのプロジェクト用にまとめた単純なツール セットでした。1 つのツールは、mSQL データベースへの派手なヒット ロギングを行い、別のツールはフォーム データ インタープリターとして機能しました。うんざりする前に、C で書かれた約 30 の異なる小さな CGI プログラムができあがり、それらすべてを 1 つの C ライブラリに結合しました。次に、HTML ファイルからタグを抽出し、それらを C ライブラリ内の対応する関数の出力に置き換える、非常に単純なパーサーを作成しました。

単純なパーサーは徐々に成長し、条件付きタグ、ループ タグ、関数などを含むようになりました。スクリプト言語を書いているとはまったく思いませんでした。マクロ置換パーサーに機能を少し追加しただけです。私はまだすべての実際のビジネス ロジックを C で書いていました。

導入されたすべての関数は本質的に HTML ドキュメントのタグのように感じられ、HTML タグは大文字と小文字を区別しないため、彼は PHP で大文字と小文字を区別しない関数名を選択したとどこかで読んだことがあります。その後、この機能は言語に残りました。

于 2011-06-10T05:52:06.167 に答える
35

はい、関数とメソッドの名前は大文字と小文字が区別されません。

はい、変数名は大文字と小文字が区別されます。

その理由があるかどうかはわかりませんが、長い間この方法であり、下位互換性の理由から今もそうです。



参考として、マニュアルのさまざまなページへのリンク/引用をいくつか示します。

関数の場合(引用符) :

注: 関数名は大文字と小文字を区別しませんが、通常は宣言に表示されているとおりに関数を呼び出すのが適切な形式です。

メソッドは、オブジェクト内の関数にすぎません。特に、PHP 4 と後方互換性について考える場合はなおさらです。


そして、変数の場合 (引用符):

PHP の変数は、ドル記号の後に変数名が続く形で表されます。変数名は大文字と小文字が区別されます。

また、オブジェクトのプロパティは、オブジェクト内の変数にすぎません。PHP 4 と下位互換性についても同様です。

于 2010-05-01T11:52:11.607 に答える