ホームページ >バックエンド開発 >PHPチュートリアル >PHPでクラスプロパティに匿名関数を割り当てるにはどうすればよいですか?

PHPでクラスプロパティに匿名関数を割り当てるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 13:25:02704ブラウズ

How to Assign Anonymous Functions to Class Properties in PHP?

PHP でのクラス プロパティへの匿名関数の割り当て

PHP では、次の場合にクラス プロパティを匿名関数に直接初期化することはできません。それを宣言しているのです。以下のコード スニペット:

<code class="php">class AssignAnonFunction {
    private $someFunc = function() {
        echo "Will Not work";
    };
}</code>

エラー メッセージ「解析エラー: 構文エラー、予期しない T_FUNCTION」が生成されます。これは、PHP 言語では、宣言フェーズ中に関数を使用してプロパティを初期化することが許可されていないためです。

定数値初期化の制限

PHP マニュアルによると、クラス プロパティ宣言時に定数値でのみ初期化できます。定数値とは、実行時の情報に依存せずにコンパイル時に評価できる値です。ただし、関数はこの基準に適合しないため、宣言中にプロパティ初期化子として許可されません。

コンストラクターを使用した回避策

匿名関数でプロパティを初期化できないにもかかわらず宣言中に、コンストラクター メソッド内のプロパティに関数を割り当てることができます。前のコードを次のように変更すると、代入が可能になります:

<code class="php">class AssignAnonFunctionInConstructor {
    private $someFunc;

    public function __construct() {
        $this->someFunc = function() {
            echo "Does Work";
        };
    }
}</code>

オブジェクトの作成時にコンストラクター メソッドが呼び出され、実行時に匿名関数をプロパティに代入できるようになります。

以上がPHPでクラスプロパティに匿名関数を割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。