我不确定这样做的最佳方法,所以我们非常感谢您的想法!
基本上,在PHP页面的开头,我试图获得$ pin的变量。
该值可以从整个网站的不同电话中获取。
最初我有:
if (isset($Reader->Pin)) { $pin = $Reader->Pin; } else { $pin = isset($_GET['Pin']) ? $_GET['Pin'] : ''; }
正如您所看到的,有几种方法可以在整个网站上获取PIN码(而不是我的代码)。
我需要在这里添加一些东西,它们也可以获得$ Reader-> pin的值(不同于 - > Pin!)。
但最后,如果它们都不匹配,它仍然需要返回为空白。
我可以添加此内容的最佳方式是什么?
答案 0 :(得分:1)
我创建了一个coalesce函数并从那里分配$ pin:
function coalesce($args_)
{
$result = null;
if (func_num_args() > 0)
{
foreach(func_get_args() as $arg)
{
if ($arg != null)
{
$result = $arg;
break;
}
}
}
return $result;
}
// in the header:
$pin = coalesce($Reader->Pin?:null, $_GET['Pin']?:null, ..., ..., ...);
现在,您只需按照重要性的顺序将可能的源作为合并函数的参数。
修改强>
coalesce
函数接受任意数量的参数,并从左到右遍历它们。它返回第一个不松散的参数。
答案 1 :(得分:0)
最后,我确定了我可以做以下事情:
if (isset($Reader->Pin))
{ $pin = $Reader->Pin; }
elseif (isset($Reader[0]->Pin))
{ $pin = $Reader[0]->Pin; }
else
{ $pin = isset($_GET['Pin']) ? $_GET['Pin'] : ''; }