Am 20.06.2018 um 15:55 schrieb Levi Morrison:
Your wish cannot be granted for `array_value_last` and
`array_value_first`; you cannot know by itself if there is a failure
condition.
I can comprehend your issue with the lack of distinctness between the
error case and the 'real' array value null without further checks.
But in my opinion the required additional checking of the $input is a
learned behaviour from existing functions which handle single value
elements from an array as reset(), current() and end() will return false
for empty arrays or null for invalid data types which are both also
valid element values.
array_pop() and array_shift() also behave in a comparable way as they
return null as well for empty arrays as for non array input.
This is not "clean". In contrast here is with my proposal:
if ([$key, $value] = array_last($input) {
// do something
}
I still think that this proposed syntax is unintuitive and hard to
comprehend for the user of the function.
I don't think many PHP developers out there know that the condition
inside the if will evaluate to null if array_last returns null.
Additionally I don't know about any other function where a construct
like this has to be used to extract two or more different semantic
entities, in this case the key and the value, out of a PHP core function
return value.
Enno
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php