Hi,
I see this is the time to do language feature request. So let me add
another. I very often use something like:
/$a = isset($x['abc']) ? //$x['abc'] : null;
/This is to prevent an E_NOTICE
from being thrown.
This subject is already discussed many times, which led to a suggestion
for PHP6
(http://www.php.net/~derick/meeting-notes.html#ifsetor-as-replacement-for-foo-isset-foo-foo-something-else)
/$foo = $_GET['foo'] ?: 42;/
This still throws an E_NOTICE
when the first parameter is not set. Also
$foo will be set to 42 if the input variable is 0. The conclusion is
that this feature is useless for the presented situation.
I would like something similar to isset: ifsetor($var, [$default = null]);
/$a = ifsetor($x['abc']);
//$foo = ifsetor($_GET['foo'], 42);
/
I believe adding this feature will remove the biggest con people have on
working with E_NOTICE
enabled. I'm sorry if I reopen an already closed
subject.
Best regards,
Arnold
read the archives, there's been a LOT of discussion about this already.
AFAIK the team decided not to implement this before PHP 6.0.
- tul
Arnold Daniels wrote:
Hi,
I see this is the time to do language feature request. So let me add
another. I very often use something like:
/$a = isset($x['abc']) ? //$x['abc'] : null;
/This is to prevent anE_NOTICE
from being thrown.This subject is already discussed many times, which led to a suggestion
for PHP6
(http://www.php.net/~derick/meeting-notes.html#ifsetor-as-replacement-for-foo-isset-foo-foo-something-else)/$foo = $_GET['foo'] ?: 42;/
This still throws anE_NOTICE
when the first parameter is not set. Also
$foo will be set to 42 if the input variable is 0. The conclusion is
that this feature is useless for the presented situation.I would like something similar to isset: ifsetor($var, [$default = null]);
/$a = ifsetor($x['abc']);
//$foo = ifsetor($_GET['foo'], 42);
/
I believe adding this feature will remove the biggest con people have on
working withE_NOTICE
enabled. I'm sorry if I reopen an already closed
subject.Best regards,
Arnold
Arnold Daniels wrote:
I see this is the time to do language feature request. So let me add
another. I very often use something like:
/$a = isset($x['abc']) ? //$x['abc'] : null;
/This is to prevent anE_NOTICE
from being thrown.
It seems to me like adding a function:
mixed array_get(mixed key, array search [, mixed default_value])
The implementation being:
// constraint checking here
if (array_key_exists($key,$search) return $search[$key];
return $default_value;
would be the way to go. A functional way to do array access (I don't
see another way to do this, actually), and also allow a default value if
the specified key doesn't exit.
Very similiar to the getProperty() method in Java's Properties class.
--
Patrick_Mueller@us.ibm.com
IBM PHP Community Architect, IBM Research Triangle Park