Re: RFC: Add `final class Vector` to PHP

From: Date: Fri, 17 Sep 2021 04:46:59 +0000
Subject: Re: RFC: Add `final class Vector` to PHP
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-116055@lists.php.net to get a copy of this message
> > - contains also doesn't have a comparator. > > I was considering proposing ->any(callable) and > ->all(callable) extensions if this passed. > I'm not quite sure what you mean by a comparator for contains. There'd have to be a > way to check if a raw closure is contained. I mean that there isn't a way to provide a custom way to compare for equality. One way to accomplish this is to have a signature like: function contains(T $value, ?callable(T, T):bool $comparator = null): bool The same goes for indexOf. > > - I don't know what setSize(int $size) does. What > > does it do if the > > current size is less than $size? What about if its current > > size is > > greater? I suspect this is about capacity, not size, but without docs > > I am just guessing. > > It's the same behavior as > https://www.php.net/manual/en/splfixedarray.setsize.php . It's > about size, not capacity. > > > Change the size of an array to the new size of size. > > If size is less than the current array size, any values after the new size will be > > discarded. > > If size is greater than the current array size, the array will be padded with null values. > > I'd planned to add phpdoc documentation and examples before starting a vote to document > the behavior and thrown exceptions of the proposed methods. I would rather see multiple methods like: function truncateTo(int $size) function padEnd(int $length, $value) // allows more than just null function padBeginning(int $length, $value) And one or more for increasing/ensuring capacity without changing size.

« previous php.internals (#116055) next »