A "proper" implementation won't break, but there may be subtle ways that 
"improper" implementations will break and thus it should be considered a BC break.

This thread is fallaciously equating breaks in third-party libraries _when changing consumer code_, with breaks just by updating PHP.

If I'm in PHP 8.1+ and I pass an object into a library and all goes well, then I change a property to readonly and get an error, that's not PHP making a breaking change by allowing me to use readonly. That's an outdated library (and me) breaking my code.

I've had my reflection code break on backwards compatible changes loads of times, but every time it required the user to make a change to their code first.

Valentin's list of examples proves this point. They worked fine on 8.1 _until_ people changed code to add readonly. That's not a BC break. Same deal for aviz.

Reply via email to