On 5 May 2017 22:19:51 BST, Ryan Pallas <derokor...@gmail.com> wrote:
>I just read this thread and am wondering what exactly is the use case?
>Like
>are you going to do something if it is vector-like, and do something
>different (or not do anything at all) if it's not vector-like? I mean,
>if
>you have to crawl it, and need a vector, why not just call array_values
>and
>guarantee you have a vector?

I gave one use case in an earlier message: many serialisation formats have a 
different form for ordered lists vs key-value pairs. As an obvious example, 
look at JSON arrays and objects, and many other formats have similar types.

It can also be quite intuitive to have a function accept either a list of 
prepared items or a set of key-value pairs representing structured data. For 
instance, HTTP headers might be prepared like ['User-Agent: example'] or 
structured like ['User-Agent' => 'example']. Turning the second into the first 
requires more than just running array_values, but can be skipped if the input 
is known to be vector-like.

Arrays that have integer keys, but not all sequential, can be a bit of an edge 
case, but treating them as a list throws away information, so it's usually 
safer to treat them as key-value pairs.

Regards,

-- 
Rowan Collins
[IMSoP]

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to