我有一个项目需要回显$ variable ['key'];
有些时候$ variable ['key']不存在。当我回显$ variable ['key']时,那些变量会产生错误;直接
我目前的方法是
echo (isset($variable['key'])) ? $variable['key'] : '';
这不是非常有效的方法。我不想两次写所有键。
我需要一个功能。基本上检查$ varible ['key']; 在函数内并返回它的值。
function get_ifisset(&$var = null){
if(isset($var)){ return $var; }
}
echo get_ifisset($vars['key']);
但由于$ variable ['key']不存在,我无法将它们发送到函数
这种用法会引发错误,即“未定义的密钥”。
另外,跟随功能是我不喜欢的另一种方法。
function get_ifisset($var, $key){
if(array_key_exists($key, $GLOBALS[$var])){ return $GLOBALS[$var][$key]; }
}
我想学习有没有办法检查函数内部数组键的出现性。
property_exists(); array_key_exists(); isset()函数;
答案 0 :(得分:1)
您可以将数组,键和默认值传递给函数:
public function getValue($array, $key, $default = '') {
return isset($array[$key]) ? $array[$key] : $default;
}
$this->getValue($variable, 'key');
此外,根据我的经验function get_ifisset(&$var)
不会抛出任何错误(我没有将其默认设置为null)。
答案 1 :(得分:1)
修改了@Justinas函数:
public function getValue($array, $key, $default = '') {
if(!is_array($key)) {
return isset($array[$key]) ? $array[$key] : $default;
}
$arr = & $array;
foreach($key as $subkey) {
if(!isset($arr[$subkey])) {
return $default;
}
$arr = & $arr[$subkey];
}
return $arr;
}
所以你可以在多维数组上使用它
getValue($array, "key");
getValue($array, Array("key", "subkey", "subsubkey"));