我希望在PHP中使用一个函数来获取动态元素值。
E.g。将大量echo isset($arrayFromDB['d']) ? $arrayFromDB['d'] : ''
替换为函数调用echoEl($arrayFromDB['d'])
问题:如何传递不存在的数组元素?
理论算法,不起作用:
$arrayFromDB = ['a' => 'Aslovas', 'b' => 'Boslovas', 'c' => 'Coslovas'];
echoEl($arrayFromDB['d']); //Error will be here
private function echoEl($arrayElement) {
if (isset($arrayElement)) { // Element is always set at this point
echo $arrayElement;
} else {
echo '';
}
}
是否可以在PHP中实现该变量检查功能。
答案 0 :(得分:2)
注意:这也适用于多维数组
function isSetOr(&$value, $default = null)
{
return isset($value) ? $value : $default;
}
==编辑== 如下所述,这将把非现有变量设置为null。 为了您的目的,您可以使用echo而不是return:)
function isSetOr(&$value, $default = null)
{
echo isset($value) ? $value : $default;
}
答案 1 :(得分:0)
目前在else
运算符中,您echo '';
完全没有任何内容,所以我没有将其包含在内。
// array of data
$arrayFromDB = ['a' => 'Aslovas', 'b' => 'Boslovas', 'c' => 'Coslovas'];
// pass array and desired key to function
echoEl($arrayFromDB, 'd');
// function to print element if it exists
private function echoEl($array, $key)
{
if (isset($array[$key]))
{
echo $array[$key];
}
}
如果你想这可以在这样的循环中使用:
foreach ($arrayFromDB as $key => $value)
{
echoEl($arrayFromDB, $key);
}
然而,并没有太多意义,因为它等同于此:
foreach ($arrayFromDB as $value)
{
echo $value;
}