「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP の「初期化前に型指定されたプロパティにアクセスしてはなりません」エラーを修正する方法

PHP の「初期化前に型指定されたプロパティにアクセスしてはなりません」エラーを修正する方法

2024 年 12 月 23 日に公開
ブラウズ:991

How to Fix the \

「初期化前に型付きプロパティにアクセスしてはなりません」エラーについて理解する

PHP 7.4 でのプロパティ型ヒントの導入により、有効な値をプロパティに割り当てることが重要になります。すべてのプロパティを使用して、宣言された型が確実に尊重されるようにします。値が割り当てられていない未定義のプロパティは、宣言された型と一致せず、次のエラー メッセージが表示されます。「初期化前に型指定されたプロパティにアクセスすることはできません。

たとえば、次のコードを考えてみましょう。

class Foo {
    private string $val;

    public function __construct(int $id) {
        $this->id = $id;
    }

    public function getVal(): string { return $this->val; }
}

Foo の構築後に $val にアクセスすると、その型がまだ定義されていないためエラーが発生します (未定義 !== null)。

これを解決するには、実行中にすべてのプロパティに値を割り当てます。構築するか、デフォルト値を設定します:

class Foo {
    private string $val = null;  // default null value

    public function __construct(int $id) {
        $this->id = $id;
    }
}

すべてのプロパティに有効な値が設定され、エラーが解消されました。

この問題は、自動生成された ID やタイムスタンプなどのエンティティ プロパティのデータベース値に依存している場合にも発生する可能性があります。自動生成された ID の場合は、nullable として宣言します:

private ?int $id = null;

その他すべての場合は、そのタイプに一致する適切なデフォルト値を選択します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3