Re: [RFC] Case sensitive PHP
| From: | Rob Landers | Date: | Wed, 17 Jun 2026 10:55:59 +0000 |
| Subject: | Re: [RFC] Case sensitive PHP | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-131345@lists.php.net to get a copy of this message | ||
On Wed, Jun 17, 2026, at 12:30, fennic log wrote:
> I would be fully in favour of this RFC, but there is 1 hurdle which cant be ignored.
>
> What should the PHP naming convention be for these?
>
> Without deciding on what it should be we would be creating a new issue of mix-mash of
> uppercase, lowercase and camelcase classes for example
>
> Few examples
> - DateTime is documented as Camelcase -
> https://www.php.net/manual/en/class.datetime.php
> - PDO is documented as uppercase -
> https://www.php.net/manual/en/class..pdo.php
> - mysqli is documentated as lowercase -
> https://www.php.net/manual/en/set.mysqlinfo.php
> - ArrayAccess is documented as camelcase -
> https://www.php.net/manual/en/class.arrayaccess.php
>
> PHP mixing case of definitions, at least with current system, users can choose their preferred
> convention and it will work.
> If we change to be case sensitive, we risk introducing a giant headache for devs, as they need
> to remember what different casing each different builtin class is.
> It will become a the new
($haystack, $needle) -
> ($needle, $haystack) problem, and won't gain love from the
> community.
>
>
>
> On Wed, 17 Jun 2026 at 01:03, Jorg Sowa <jorg.sowa@gmail.com> wrote:
>> Hello internals,
>> I would like to revive the discussion about fully case-sensitive PHP. I have collected the
>> points raised in previous discussions, and browsed all affected language features and
>> functionalities.
>> I still need to perform the impact analysis and the performance benchmarks. I will add them
>> to the RFC and inform in the thread when I complete it.
>>
>> RFC: https://wiki.php.net/rfc/case_sensitive_php
>> Kind regards,
>> Jorg
I honestly can’t think of anything good that this RFC would bring. It would bring this cased salad
into every code base and require changing code if you use a consistent casing throughout your code
base. Just so that *person* and *Person* are different? That just sounds confusing to me.
I’m not sure the gain — which I’m also unsure what the gain even is — is worth it.
— Rob