<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/readonly-property-defaults-in-php-8-6-a-four-year-old-restriction-finally-lifts-gohj3ferj" -->

---
title: Readonly Property Defaults in PHP 8.6: A Four-Year-Old...
description: PHP 8.6 removes a four-year-old restriction and allows readonly properties to declare default values. This makes readonly properties usable in interfaces and...
canonical: https://daily.dev/posts/readonly-property-defaults-in-php-8-6-a-four-year-old-restriction-finally-lifts-gohj3ferj
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Readonly Property Defaults in PHP 8.6: A Four-Year-Old Restriction Finally Lifts | daily.dev
og:description: PHP 8.6 removes a four-year-old restriction and allows readonly properties to declare default values. This makes readonly properties usable in interfaces and...
og:url: https://daily.dev/posts/readonly-property-defaults-in-php-8-6-a-four-year-old-restriction-finally-lifts-gohj3ferj
og:image: https://api.daily.dev/og/posts/GOhj3Ferj.png
og:image:alt: Readonly Property Defaults in PHP 8.6: A Four-Year-Old Restriction Finally Lifts
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Readonly Property Defaults in PHP 8.6: A Four-Year-Old Restriction Finally Lifts

**[PHP Architect](https://daily.dev/sources/phparchitect)** · [@shocm](https://daily.dev/shocm) · 1 min read · 0 upvotes · 0 comments

## Summary

PHP 8.6 removes a four-year-old restriction and allows readonly properties to declare default values. This makes readonly properties usable in interfaces and simplifies patterns that previously required constructor promotion workarounds. The change also introduces edge cases developers should be aware of when adopting it.

## Content

PHP 8.6 lets readonly properties declare default values. Here is what changed, why interface properties made it worthwhile, and the edge cases to watch.

https://shocm.me/posts/2026-08-30-php-86-readonly-property-defaults/

## Similar posts on daily.dev

- [\[RFC\] Readonly Property Defaults](https://daily.dev/posts/rfc-readonly-property-defaults-wdsrbpxad) · externals.io · 0 upvotes · 0 comments
- [What's new in PHP 8.6](https://daily.dev/posts/what-s-new-in-php-8-6-eixar55ou) · stitcher.io · 103 upvotes · 7 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming), [#php](https://daily.dev/tags/php)

[View this post on daily.dev](https://daily.dev/posts/readonly-property-defaults-in-php-8-6-a-four-year-old-restriction-finally-lifts-gohj3ferj)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/readonly-property-defaults-in-php-8-6-a-four-year-old-restriction-finally-lifts-gohj3ferj","headline":"Readonly Property Defaults in PHP 8.6: A Four-Year-Old Restriction Finally Lifts","text":"PHP 8.6 removes a four-year-old restriction and allows readonly properties to declare default values. This makes readonly properties usable in interfaces and simplifies patterns that previously required constructor promotion workarounds. The change also introduces edge cases developers should be aware of when adopting it.","url":"https://daily.dev/posts/readonly-property-defaults-in-php-8-6-a-four-year-old-restriction-finally-lifts-gohj3ferj","datePublished":"2026-08-30T16:01:09.664Z","dateModified":"2026-08-30T16:01:25.456Z","author":{"@type":"Person","name":"Eric Johnson","url":"https://daily.dev/shocm","image":"https://media.daily.dev/image/upload/s--EPMJ-a-K--/f_auto/v1755890250/avatars/avatar_y7ct3dSEp45NFSALYHve6?_a=BAMClqZW0","description":"PHP Architect team member. I am powered by 16-year-old single malt Scotch and baseball.","worksFor":{"@type":"Organization","name":"php[architect]","logo":"https://res.cloudinary.com/daily-now/image/upload/s--10MwB_VH--/f_auto/v1726147436/companies/phparch"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":320}},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/squads/phparchitect","name":"PHP Architect"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"PHP Architect","item":"https://daily.dev/squads/phparchitect"},{"@type":"ListItem","position":3,"name":"Readonly Property Defaults in PHP 8.6: A Four-Year-Old Restriction Finally Lifts"}]}
```

