web-dev-qa-db-ja.com

PHPで変数名または関数名の長さに制限はありますか?

私が本当に長い変数名を書きたかったら:

$this_is_my_variable_that_does_something_in_the_following_function_and_provides_some_information_with_which_the_function_relies_upon_to_do_all_the_work_it_needs = null;

それはうまくいくでしょうか?関数/メソッド名についても同じ質問

37
james

一般に、このような制限は、コードを操作する他の人々からの暴力の脅威によって課されます。

220
ceejayoz

ドキュメント から:

変数名は、PHPの他のラベルと同じ規則に従います。有効な変数名は、文字またはアンダースコアで始まり、任意の数の文字、数字、またはアンダースコアが続きます

ここ で述べたように、関数名の場合も同じです。

94

変数/関数/メソッド/クラス名の長さの制限がありません。

上記のコメントは、このプロパティが悪用されるべきではないと述べています。これは、人間が読み取り可能/保守可能なコードに関してのみ当てはまります。

ただし、これはPHPの非常に便利な機能であり、クラスを生成するTwig例ごとに)など、非常に人気のある多くのプロジェクトで非常にうまく利用されています。例(スニペット):

class __TwigTemplate_9601167421099bbb502d119e674fed3fb71769eef256903648c9c2b4b6faa436 extends \Twig_Template {

    protected function doDisplay(array $context, array $blocks = array())
    {
        $__internal_0abebc74dd811fd7b4cfa4c6a2fdf870d7723c04e8daf6926b04914d6644935f = $this->env->getExtension("native_profiler");    
    }

}

私のプロジェクトでも同じ財産の恩恵を受ける機会がありました。

結論として:

  • Var/func/classの名前の長さに制限はありません
  • とても便利な言語機能です
  • その使用法には文脈があります。もちろん、毎日の仕事ではありません
12
Nikola Svitlica

制限はありませんが、読み取り不可能なコードが作成されるため、お勧めできません...

3
zsalzbank

PHPでは、識別子の長さに制限はありません。

とはいえ、なぜ160文字の変数名を作成する必要があるのか​​はわかりません。これが架空の質問であることを願っています。

3
Craige