vimeo/psalm

array_unique 2nd parameter may restrict the array items type

Open

#7,956 opened on May 13, 2022

View on GitHub
 (11 comments) (0 reactions) (0 assignees)PHP (5,369 stars) (668 forks)batch import
Help wantedeasy problemsinternal stubs/callmap

Description

Hi,

the array_unique() function has an optional 2nd parameter flag, which is one of the following value:

  • SORT_REGULAR
  • SORT_NUMERIC
  • SORT_STRING (default value)
  • SORT_LOCALE_STRING

if the flag is one of SORT_LOCALE or SORT_LOCALE_STRING, the array should only contain strings or values that can be casted to string. I'm not sure exactly what the definition should be, maybe: int|float|string|bool|\Stringable|null

Here we can see it fail : https://3v4l.org/lJsCp

and here we can see that Psalm does not find any error: https://psalm.dev/r/2135f5de25


edit: I realized that the SORT_NUMERIC also restrict the item type, probably something like int|float|string|null

Contributor guide