2022年6月18日(土) 3:13 Tim Düsterhus <t...@bastelstu.be>:

> Hi
>
> On 6/17/22 19:46, Go Kudo wrote:
> > I was fundamentally wrong, I understand now.
> > As you said, there was no interoperability with `pickArrayKey()` in the
> > first place...
> >
> >> stringFromAlphabet()
> >
> > Hmmm. I guess randomString would be better then. At the same time, it
> would
> > be nice to have an array version of randomArray.
> >
> > However, I don't want to add more methods without any thought.
> > I think operations that can be done on userland should be done on
> userland.
> > That is why I did not implement the array_rand() function in the first
> > place.
>
> Yes, I agree here. But I believe that "generate a string with a given
> alphabet" is a very common operation that would be useful to include in
> the standard library. In any case it's better to leave something out
> than to implement something badly, so if you don't feel comfortable with
> that, then leave it out. There will be more PHP versions after 8.2.
>
> For me both of these:
>
> ->randomString(string $alphabet, int $length)
> ->stringFromAlphabet(string $alphabet, int $length)
>
> with the description "Return a string of $length characters selected
> from the given $alphabet. Characters may be selected more than once".
>
> would be acceptable names.
>
> Best regards
> Tim Düsterhus
>

I noticed one important thing. "String" in PHP means binary, and operating
on multibyte
characters often causes problems.

Although I rarely deal with multibyte characters in my work, this can
probably be a big
problem for Japanese PHP users like myself.

To work around this, the mbstring extension must be used properly, but
since mbstring is
not built-in, it is appropriate to implement it in userland.

For the reasons stated above, we will abandon the addition of new methods.
sorry.

`str_shuffle()` and `shuffleString()` already have similar problems. So
perhaps an alternative
method name for `str_shuffle()` might be `bytesShuffle()` instead of
`stringShuffle()`.

Regards
Go Kudo

Reply via email to