Re: Introduce str_left/right In 8.1
| From: | Mike Schinkel | Date: | Wed, 23 Jun 2021 19:10:15 +0000 |
| Subject: | Re: Introduce str_left/right In 8.1 | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-115077@lists.php.net to get a copy of this message | ||
Replying to both Sara's and G.P.B.'s emails below:
> On Jun 23, 2021, at 12:48 PM, Sara Golemon <pollita@php.net> wrote:
>
> Using some context, I would assume you mean this:
>
> function str_left(string $str, int $len): string {
> return substr($str, 0, $len);
> }
>
> function str_right(string $str, int $len): string {
> return substr($str, -$len);
> }
>
> If that's the case, then.... why? As you can see, the existing
> functionality available is trivial to write.
> <snip>
> Am I misunderstanding what these proposed functions should do, or am I
> underestimating the difficulty of typing a zero or negative sign on certain
> keyboards?
I can't speak for Hamza, but one reason I can see for why — at least for str_right() — is
that using a negative index might not occur to many people. Hell, I even forgot substr() worked that
way until you mentioned it.
But, since objective evidence is better than opinion, a non-trivial number of people have searched
how to get the last 'n' characters from a string in PHP, found the answer, and then went
to the effort to upvote it on StackOverflow. If the 90-9-1 rule holds, then that's about 6200
people who have been confused, searched and found the answer here:
https://stackoverflow.com/questions/10542310/how-can-i-get-the-last-7-characters-of-a-php-string
<https://stackoverflow.com/questions/10542310/how-can-i-get-the-last-7-characters-of-a-php-string>
For future people to whom it does not occur that substr() accepts negative arguments, or for people
who forget that fact, str_right() would provide an obvious solution that would be easy to find in
IDE autocomplete or when scanning the list of functions on PHP.net.
At which point it would make sense to also at str_left() for symmetry.
That said, my world won't change if these functions are not added, but adding them would be
nice a little improvement to daily PHP developer experience.
> On Jun 23, 2021, at 10:52 AM, G. P. B. <george.banyard@gmail.com> wrote:
>
> All this to say that the burden of maintenance for such a specialized
> function makes it very unsuitable to be in core.
I have frequently heard the justification of maintenance burden mentioned as an objection to adding
specific features. And in many cases, it is easy to see why future maintenance burden would be a
concern.
However, it *seems* in this case that these functions are so trivial to implement that once written
and documented they would likely never need to be touched again. But as I do not yet know the
internals of PHP I obviously do not know that to be a fact.
Honest question: Would you mind explaining the type of maintenance required for simple functions
like this? What is likely to change in the future that would require maintenance? And would you
mind giving a few or at least one example of a trivial function that did need to be maintained after
it was written?
Thank you in advance for taking the time and effort to answer.
-Mike