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] [email protected]
@niki
Arg right. But still should not be added, zero value added here.
------------------------------------------------------------------------
[2013-05-12 10:56:45] [email protected]
@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] [email protected]
$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