If someone can grant me Karma (username jmarble), I'm happy to start the process of submitting an RFC for an ARRAY_UNIQUE_STRICT flag. Thank you!
On Sun, Oct 26, 2025 at 10:50 AM Jason Marble < [email protected]> wrote: > Here's a nice example inspired by Rob's comparison of object identity and > value: > https://gist.github.com/jmarble/c86b5b0b3373498c889bc9c5579105a8 > > On Sat, Oct 25, 2025 at 2:01 PM Jason Marble < > [email protected]> wrote: > >> Rob has convinced me SORT_STRICT is semantically incorrect. I agree >> SORT_BINARY has merit, though I'm having difficulty with the implementation. >> >> I think I got too focused on _convention_ wanting to align naming >> convention with the existing SORT_* flags. But a perfectly acceptable >> alternative exists, ARRAY_UNIQUE_STRICT. >> >> I'm aware of the previous effort (https://externals.io/message/118952) >> made regarding the flag ARRAY_UNIQUE_IDENTICAL. While this is technically >> correct and follows existing convention (e.g. ARRAY_FILTER_USE_*), I >> personally feel it's a bit awkward. >> >> ARRAY_UNIQUE_STRICT is, I think, a bit more intuitive. Especially today, >> as `declare(strict_types=1)` has become more common and even encouraged, >> particularly for those who love PHPStan level max haha. >> >> Pull it, test it, break it. Let's do this! >> >> https://github.com/php/php-src/compare/master...jmarble:php-src:feature/array-unique-sort-strict >> >> On Sat, Oct 25, 2025 at 7:41 AM Morgan <[email protected]> wrote: >> >>> On 2025-10-26 00:16, Rob Landers wrote: >>> >>> > >>> > Object identity and value are different things... >>> https://3v4l.org/uZTsN >>> > <https://3v4l.org/uZTsN> >>> > >>> >>> >>> $white == new Color("white") >>> >>> That's comparing the values of the objects' properties (which may or may >>> not be relevant to its "effective value" - the comparison applies to >>> private properties as well) and considering the aggregate to be the >>> "value of the object". >>> >>> Regardless, the comparison is certainly not useful to me (where >>> recursively grovelling around in the objects' properties would be >>> prohibitively expensive if not fatal), and doesn't make array_unique() >>> any more helpful in deduplicating. >>> >>
