0

私は最近、クラスが拡張されたときに正しい名前を返さないこと__METHOD__に気付きました。__CLASS__そして、代替のメソッドを書いていて、名前を使用しようとすると__METHOD__、次のエラーが発生しました。

解析エラー: 構文エラー、予期しない T_METHOD_C、T_STRING が必要です

$myclass = new myclass();
echo $myclass->__METHOD__() . '<br />';

class myclass
{
    function __METHOD__() {
        return get_class($this) . '::' . __FUNCTION__;
        // return __METHOD__;
    }
}

PHP では、関数/メソッド名に魔法の定数を使用できないようです。この制限に関する公式ドキュメントは見つかりませんでした。どこで見つけることができますか?

情報ありがとうございます。

4

2 に答える 2

0

__METHOD__はマジック定数と呼ばれます。これは、ユーザーが変更するのではなく、印刷するだけでよいことを意味します。関数名としても使用できません。制限ではありません。これが、主にデバッグに使用するためのマジック定数です。

php.netページ-マジック定数

変数関数も確認してください。言語構成は、可変関数名として使用できません。

于 2012-10-06T08:08:30.797 に答える
-1

どうやら、魔法の定数は特別です-それらはユーザー定義の定数よりも多くの制限があります。それらは定数というよりも言語のキーワードに似ています。

ドキュメントではそれを述べていないようですが、経験的には真実です。

于 2012-10-06T10:48:32.273 に答える