Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Saya Mendapat Ralat \'Harta Ditaip Tidak Dimulakan\' dengan Petua Jenis Harta PHP 7.4?

Mengapa Saya Mendapat Ralat \'Harta Ditaip Tidak Dimulakan\' dengan Petua Jenis Harta PHP 7.4?

Patricia Arquette
Lepaskan: 2024-11-17 15:56:02
asal
616 orang telah melayarinya

Why Do I Get a

Mengapa Anda Mungkin Menghadapi Ralat "Harta Ditaip Tidak Dimulakan" dengan Petua Jenis Harta

Apabila menggunakan pembayang jenis harta baharu dalam PHP 7.4 , adalah penting untuk memberikan nilai yang sah untuk semua sifat. Tidak seperti nilai nol, sifat tidak ditentukan tidak sepadan dengan mana-mana jenis yang diisytiharkan.

Sebagai contoh, dengan kelas berikut:

class Foo {
    private int $id;
    private ?string $val;
    private DateTimeInterface $createdAt;
    private ?DateTimeInterface $updatedAt;

    public function __construct(int $id) {
        $this->id = $id;
    }
}
Salin selepas log masuk

Mengakses $val secara langsung akan menghasilkan "Sifat ditaip tidak dimulakan " ralat kerana ia tidak mempunyai nilai yang sah (bukan rentetan mahupun null).

Untuk menyelesaikannya, pastikan semua sifat mempunyai nilai yang sesuai semasa pemulaan. Nilai lalai atau nilai tetapan semasa pembinaan ialah dua pilihan:

class Foo {
    private int $id;
    private ?string $val = null;
    private DateTimeInterface $createdAt;
    private ?DateTimeInterface $updatedAt;

    public function __construct(int $id) {
        $this->id = $id;
        $this->createdAt = new DateTimeImmutable();
        $this->updatedAt = new DateTimeImmutable();
    }
}
Salin selepas log masuk

Untuk ID yang dijana secara automatik, pendekatan yang disyorkan adalah untuk mentakrifkan sifat sebagai boleh batal:

private ?int $id = null;
Salin selepas log masuk

Ingat, sifat tidak ditentukan tidak mempunyai nilai nol dan nilainya mesti sentiasa sepadan dengan jenis yang diisytiharkan. Dengan memberikan nilai awal atau nilai lalai, anda boleh menghalang ralat permulaan ini dan memastikan keadaan tika yang sah.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Harta Ditaip Tidak Dimulakan' dengan Petua Jenis Harta PHP 7.4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan