[PHP-DEV] Deprecate b-prefix for strings

All,

The b string prefix and the (binary) cast were both introduced in PHP 5.2.1 for forward compatibility with PHP 6.

In 2016, there was an RFC [1] targeting PHP 7.x to deprecate both, which was declined.

Since then, the (binary) type cast has now been deprecated in PHP 8.5.0 [2], but as far as I can see, the b-prefix for strings is still supported.

I can’t remember ever coming across this in the wild, so I wonder if it might be a good idea to deprecate the b-prefix now as well.

I’ll happily create an RFC for this if the you all think it’s a good idea.

Opinions ?

Smile,
Juliette

1: https://wiki.php.net/rfc/binary_string_deprecation
2: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_non-standard_cast_names

Hi

On 2026-09-25 13:32, Juliette Reinders Folmer wrote:

I'll happily create an RFC for this if the you all think it's a good idea.

I do. You can probably just add an entry to PHP 8.7's bulk RFC: PHP: rfc:deprecations_php_8_7

Best regards
Tim Düsterhus

Just in case you missed it in the avalanche of proposals being discussed on the list at this moment. So far, this suggestion has had one response, which is not enough to make it worth the effort for me to write an RFC and find someone to collaborate with for the C-code. Unless there are more people who respond to indicate interest in this proposal, I will not pursue it. Smile, Juliette

···

On 25-9-2026 13:32, Juliette Reinders Folmer wrote:

All,

The b string prefix and the (binary) cast were both introduced in PHP 5.2.1 for forward compatibility with PHP 6.

In 2016, there was an RFC [1] targeting PHP 7.x to deprecate both, which was declined.

Since then, the (binary) type cast has now been deprecated in PHP 8.5.0 [2], but as far as I can see, the b-prefix for strings is still supported.

I can’t remember ever coming across this in the wild, so I wonder if it might be a good idea to deprecate the b-prefix now as well.

I’ll happily create an RFC for this if the you all think it’s a good idea.

Opinions ?

Smile,
Juliette

1: https://wiki.php.net/rfc/binary_string_deprecation
2: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_non-standard_cast_names

Hi Juliette,

I’m happy to work on the C code, and have added this as an entry to the 8.7 deprecations RFC at https://wiki.php.net/rfc/deprecations_php_8_7#deprecate_the_b_prefix_for_binary_strings. If you have edit access and want to add the reasoning, please feel free - I didn’t copy from your original message because the wiki is licensed under the “CC Attribution-Noncommercial-Share Alike 4.0 International” license and I can’t agree to that for text that I didn’t write. If you can’t or don’t want to update the RFC page, I’ll expand on the reasoning at some point between now and when that RFC is officially under discussion next year.

-Daniel

On Mon, Oct 5, 2026 at 2:39 PM Juliette Reinders Folmer <php-internals_nospam@adviesenzo.nl> wrote:

On 25-9-2026 13:32, Juliette Reinders Folmer wrote:

All,

The b string prefix and the (binary) cast were both introduced in PHP 5.2.1 for forward compatibility with PHP 6.

In 2016, there was an RFC [1] targeting PHP 7.x to deprecate both, which was declined.

Since then, the (binary) type cast has now been deprecated in PHP 8.5.0 [2], but as far as I can see, the b-prefix for strings is still supported.

I can’t remember ever coming across this in the wild, so I wonder if it might be a good idea to deprecate the b-prefix now as well.

I’ll happily create an RFC for this if the you all think it’s a good idea.

Opinions ?

Smile,
Juliette

1: https://wiki.php.net/rfc/binary_string_deprecation
2: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_non-standard_cast_names

Just in case you missed it in the avalanche of proposals being discussed on the list at this moment.

So far, this suggestion has had one response, which is not enough to make it worth the effort for me to write an RFC and find someone to collaborate with for the C-code.

Unless there are more people who respond to indicate interest in this proposal, I will not pursue it.

Smile,
Juliette

On Fri, Sep 25, 2026, at 13:32, Juliette Reinders Folmer wrote:

I wonder if it might be a good idea to deprecate the b-prefix now as well.

Previous discussion threads on this:

https://news-web.php.net/php.internals/98131
https://news-web.php.net/php.internals/96743
https://news-web.php.net/php.internals/97881

I don’t really have a strong opinion on this. It seems nobody uses this anymore, but there also does not seem a big advantage to removing it.

Regards,

Sjoerd

On Tue, Oct 6, 2026, at 3:04 AM, Sjoerd Langkemper wrote:

On Fri, Sep 25, 2026, at 13:32, Juliette Reinders Folmer wrote:

I wonder if it might be a good idea to deprecate the `b`-prefix now as well.

Previous discussion threads on this:

php.internals: [RFC][VOTE] Binary String Deprecation
php.internals: Binary string forward compatibility removal
php.internals: [RFC][Discussion] Binary String Deprecation

I don't really have a strong opinion on this. It seems nobody uses this
anymore, but there also does not seem a big advantage to removing it.

Regards,

Sjoerd

Likewise, I'd probably vote in favor if it came up, but it's not something I am likely to put many other brain cells on.

--Larry Garfield