PHP return if isset [duplicate]

霸气de小男生 提交于 2019-12-01 04:44:23

问题


Possible Duplicate:
Any more concise way to set default values?

Is there a built-in php function like the following:

function isset_get($array, $key, $default = null) {
    return isset($array[$key]) ? $array[$key] : $default;
}

I don't like

$my_var = isset($my_array['some Key']) ? $my_array['some Key'] : '';

and would prefer

$my_var = isset_get($my_array, 'some Key', '');

or something similar...


回答1:


No. In my codebase we have several helpers of this nature. The names are pretty terrible but since they are frequently used, concision is warranted

idx($array, $key, $default) returns the $default if !isset($array[$key])

adx($array, $key, $default) like idx, but enforces that $array is actually an array and throws if not.

edx($array, $key, $default) returns the $default if !isset($array[$key]) or empty($array[$key])




回答2:


Consider using array_merge. Merging will overwrite keys of each given array allowing you to override an array of default values with the given values.

$defaults = array('some Key' => 'some Default Value');
$input = array('some Key' => 'a new value');
$merged = array_merge($defaults, $input);
$value = $merged['some Key'];

This won't work correctly for numeric keys however, so you should ensure you're working with an map instead of a vector.



来源:https://stackoverflow.com/questions/14086980/php-return-if-isset

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!