Take the State of PHP 2026 Survey →

grapheme_strrev: strrev for grapheme cluster View as Markdown

Implemented (PHP 8.6)
Authors
Yuya Hamada youkidearitai@gmail.com
Date
2026-01-14
Version
0.9
Implementation
https://github.com/php/php-src/pull/20949
Source
wiki.php.net/rfc/grapheme_strrev

Vote

Add grapheme_strrev function closed
Yes
20
No
0
Abstain
0
20 voters
alexandredaubois Yes 2026-02-18 07:47
asgrim Yes 2026-02-06 16:42
ashnazg Yes 2026-02-11 15:08
bwoebi Yes 2026-02-06 00:15
crell Yes 2026-02-06 15:40
cschneid Yes 2026-02-08 12:01
daniels Yes 2026-02-18 01:04
derick Yes 2026-02-06 08:28
galvao Yes 2026-02-07 23:55
girgias Yes 2026-02-09 10:38
malferov Yes 2026-02-10 18:08
mbeccati Yes 2026-02-06 09:12
ocramius Yes 2026-02-06 14:45
pajoye Yes 2026-02-06 02:13
petk Yes 2026-02-06 11:27
ramsey Yes 2026-02-06 23:16
sergey Yes 2026-02-07 16:01
theodorejb Yes 2026-02-06 01:13
timwolla Yes 2026-02-06 08:51
weierophinney Yes 2026-02-06 19:42

Discussions on the mailing list

[UNDER DISCUSSION][RFC] grapheme_strrev function
by youkidearitai · 6 messages
[VOTE] grapheme_strrev: strrev for grapheme cluster
by youkidearitai · 4 messages

RFC text

Copied from wiki.php.net, last synchronized Oct 13, 2026 11:50 UTC

Introduction

This proposal is strrev for grapheme cluster unit function. Userland sometimes shows mb_strrev function, but mbstring(Unicode code point unit) can not support multi code point (for example, emoji etc...).

Almost same of Swift's String.reversed().

Proposal

Add grapheme_strrev function.

<?php
echo grapheme_strrev("αあいうえお👨‍👨‍👧‍👦"); // result is "👨‍👨‍👧‍👦おえういあα"
echo grapheme_strrev("ﻡﺮﺤﺑًﺍ"); // result is "ﺍً ﺐﺣﺮﻣ" (Hello in Arabic, Also works RtoL languages)
?>

Backward Incompatible Changes

This could break a function existing in userland with the same name.

Proposed PHP Version(s)

Next of PHP 8.5 (PHP 8.6 or PHP 9.0)

RFC Impact

To the Ecosystem

None

To Existing Extensions

Adds grapheme_strrev() to the intl extension.

To SAPIs

None

Open Issues

None

Future Scope

None

Voting Choices

Pick a title that reflects the concrete choice people will vote on.

Please consult the php/policies repository for the current voting guidelines.


Primary Vote requiring a 2/3 majority to accept the RFC:

Vote: Add grapheme_strrev function — Yes: 20 · No: 0 · Abstain: 0 (closed)

Patches and Tests

Implementation

After the RFC is implemented, this section should contain:

  1. the version(s) it was merged into
  2. a link to the git commit(s)
  3. a link to the PHP manual entry for the feature

References

Rejected Features

Keep this updated with features that were discussed on the mail lists.

Changelog

If there are major changes to the initial proposal, please include a short summary with a date or a link to the mailing list announcement here, as not everyone has access to the wikis' version history.