<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/rfc-discussion-friends-v030ubrjm" -->

---
title: [RFC] [Discussion] Friends | daily.dev
description: A PHP internals mailing list discussion about a proposed RFC to add C++-style &#x27;friend&#x27; class declarations to PHP. The RFC author Daniel Scherzer proposes...
canonical: https://daily.dev/posts/rfc-discussion-friends-v030ubrjm
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: [RFC] [Discussion] Friends | daily.dev
og:description: A PHP internals mailing list discussion about a proposed RFC to add C++-style &#x27;friend&#x27; class declarations to PHP. The RFC author Daniel Scherzer proposes...
og:url: https://daily.dev/posts/rfc-discussion-friends-v030ubrjm
og:image: https://api.daily.dev/og/posts/v030UBRJM.png
og:image:alt: [RFC] [Discussion] Friends
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.

# [RFC] [Discussion] Friends

**[externals.io](https://daily.dev/sources/externals)** · 15 min read · 0 upvotes · 0 comments

## Summary

A PHP internals mailing list discussion about a proposed RFC to add C++-style 'friend' class declarations to PHP. The RFC author Daniel Scherzer proposes allowing a class to grant another class access to its non-public members. Key debate centers on Liskov Substitution Principle (LSP) violations: when a parent class grants friendship, subclasses can shadow private properties and break the friend's access at runtime. After discussion with Rob Landers and Larry Garfield, the RFC was revised to restrict friend access to only protected (not private) properties/methods/constants, avoiding the shadowing issue. A further LSP concern was raised about non-inherited friendship — whether a subclass of a friend class can invoke methods defined in the friend class that access protected members.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://externals.io/message/131166>

## Similar posts on daily.dev

- [\[RFC\] \[Discussion\] Friends](https://daily.dev/posts/rfc-discussion-friends-zrggwmmbr) · externals.io · 0 upvotes · 0 comments
- [\[RFC\] \[Discussion\] Friends](https://daily.dev/posts/rfc-discussion-friends-aairfxjve) · externals.io · 0 upvotes · 0 comments
- [\[RFC\] \[Discussion\] Friends](https://daily.dev/posts/rfc-discussion-friends-pz8k1nsld) · externals.io · 0 upvotes · 0 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/rfc-discussion-friends-v030ubrjm)

```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":"TechArticle","headline":"[RFC] [Discussion] Friends","url":"https://daily.dev/posts/rfc-discussion-friends-v030ubrjm","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/rfc-discussion-friends-v030ubrjm"},"datePublished":"2026-06-08T09:30:39.504Z","dateModified":"2026-06-08T09:34:58.190Z","description":"A PHP internals mailing list discussion about a proposed RFC to add C++-style 'friend' class declarations to PHP. The RFC author Daniel Scherzer proposes...","image":"https://media.daily.dev/image/upload/s--foaA6JGU--/f_auto/v1722860399/public/Placeholder%2004","thumbnailUrl":"https://media.daily.dev/image/upload/s--foaA6JGU--/f_auto/v1722860399/public/Placeholder%2004","isAccessibleForFree":true,"articleSection":"externals.io","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"externals.io","logo":"https://media.daily.dev/image/upload/s--9i0zxASK--/f_auto,q_auto/v1780213616/logos/externals?_a=BAMAMiWQ0","url":"https://daily.dev/sources/externals"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/rfc-discussion-friends-v030ubrjm","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"general-programming,php","timeRequired":"PT15M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"externals.io","item":"https://daily.dev/sources/externals"},{"@type":"ListItem","position":3,"name":"[RFC] [Discussion] Friends"}]}
```

