Layanan:

PHP 8.6: Properti `readonly` Akhirnya Boleh Punya Nilai Default

PHP 8.6: Properti `readonly` Akhirnya Boleh Punya Nilai Default

RFC readonly property defaults berstatus Implemented untuk target PHP 8.6: readonly property PHP instance kini boleh diberi nilai default eksplisit, sesuatu yang sebelumnya ditolak compile-time sejak readonly diperkenalkan. Perubahan ini tidak menambah syntax baru—hanya mencabut restriksi lama.

Contoh dari RFC: class final dengan public readonly string $className = SomeParser::class; kini valid. Aturan yang sama berlaku pada properti di readonly class karena properti di sana implicitly readonly.

Tim WordPress, Laravel, dan library internal perlu mengecek rilis PHP 8.6 stable sebelum mengasumsikan fitur tersedia di production hosting.

Apa yang Berubah di Compiler

Sebelum PHP 8.6, default value pada instance readonly ditolak karena dianggap langsung menjadi assignment awal sehingga properti tidak bisa diubah lagi—behavior mirip metadata tetap pada object. RFC 8.6 menyatakan use case interface property (PHP 8.4) membuat pola get-only dengan default lebih masuk akal.

Aturan type check, constant-expression, inheritance, dan trait tetap sama seperti property biasa. Default harus valid pada compile time; Anda tidak bisa memasukkan runtime value sembarangan.

Use Case Interface dan Ekosistem WordPress

Pola interface dengan contract public string $className { get; } bisa diimplement class dengan readonly default tanpa boilerplate constructor besar. Berguna untuk metadata parser, rule engine, atau DTO kecil di plugin.

Hosting WordPress di aaPanel perlu PHP runtime yang sudah 8.6+ sebelum deploy kode memakai syntax ini. Tutorial setting PHP aaPanel untuk WordPress relevan saat Anda naikkan versi minor. Untuk refactor theme lama, lihat juga diskusi kompatibilitas theme dengan PHP 8.x.

Batas dan Sumber RFC

Readonly tetap melarang reassignment setelah object construction selesai. Default value bukan jalan pintas untuk mutable state. Static analysis dan PHPStan/Psalm perlu rule set terbaru agar tidak false positive.

Sumber primer: RFC readonly property defaults. Verifikasi tanggal rilis PHP 8.6 stable di php.net sebelum menulis requirement di composer.json production.

Artikel Terkait

Artikel & Informasi Seputar Bisnis & Website

→
baca semua artikel

Copyright © 2026 CodeF Web Developer. All rights reserved colaborated with Pajuda.com