Req #64818 [Com]: array_get
| From: | mario dot dweller at seznam dot cz | Date: | Sun, 12 May 2013 11:26:01 +0000 |
| Subject: | Req #64818 [Com]: array_get | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-178899@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=64818&edit=1
ID: 64818
Comment by: mario dot dweller at seznam dot cz
Reported by: mario dot dweller at seznam dot cz
Summary: array_get
Status: Wont fix
Type: Feature/Change Request
Package: Arrays related
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
In the case you have those keys in a variable like $keys = ['key1', 'key2'] you
can access it only using a loop. That's one of the purpose of the function.
BTW what looks better and what is more readable?
$a = isset($array['a']) ? $array['a'] : null;
$b = array_key_exists('b', $array) ? $array['b'] : 'default';
or
$a = array_get($array, 'a');
$b = array_get($array, 'b', 'default');
?
Previous Comments:
------------------------------------------------------------------------
[2013-05-12 11:13:28] pajoye@php.net
@niki
Arg right. But still should not be added, zero value added here.
------------------------------------------------------------------------
[2013-05-12 10:56:45] nikic@php.net
@Pierre:
isset($array['key1']['key2']) ?: NULL
is the same as
isset($array['key1']['key2']) ?
isset($array['key1']['key2']) : NULL
is the same as "true" if the key exists, "null" if it doesn't.
That's not what this req is about.
------------------------------------------------------------------------
[2013-05-12 10:53:39] pajoye@php.net
$val = isset($array['key1']['key2']) ?: NULL;
We already have an operator for that ($v = (iftrue) ?: defaultvalue).
Operators are also much more efficient than a function call.
------------------------------------------------------------------------
[2013-05-12 10:37:02] mario dot dweller at seznam dot cz
fl at nyggen dot com: I know this is possible. But i don't like suppressing warning in this
situation. And
@$array['key1']['key2'] ?: 'Key not found'
And the valid value could be false/0/""/"0"/[].
------------------------------------------------------------------------
[2013-05-12 06:41:16] fl at nyggen dot com
You could just write:
@$array['key1']['key2'];
Which will give you the same result.
@$array['key1']['key2'] ?: 'Key not found'
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=64818
--
Edit this bug report at https://bugs.php.net/bug.php?id=64818&edit=1