vimeo/psalm

array_unique 2nd parameter may restrict the array items type

Open

#7956 aperta il 13 mag 2022

Vedi su GitHub
 (11 commenti) (0 reazioni) (0 assegnatari)PHP (668 fork)batch import
Help wantedeasy problemsinternal stubs/callmap

Metriche repository

Star
 (5369 star)
Metriche merge PR
 (Merge medio 3g 12h) (5 PR mergiate in 30 g)

Descrizione

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

Guida contributor