回声$result->data['id']
不会抛出错误的最简单方法是什么?最简单的方法来检查值的存在
$result = someBackendCall(1, 2, 3);
if($result && isset($result->data) && isset($result->data['id'])){
echo $result->data['id'];
}
回声$result->data['id']
不会抛出错误的最简单方法是什么?最简单的方法来检查值的存在
$result = someBackendCall(1, 2, 3);
if($result && isset($result->data) && isset($result->data['id'])){
echo $result->data['id'];
}
它有点主观,因为有不同的方式,有的人找到一种方法比另一种更容易。有些人甚至认为你写的东西最简单。
另外,例如,你可能只是做:
echo (isset($result->data['id'])?$result->data['id']:'');
或者,你可以把它放在一个标准,如果块:
if (isset($result->data['id'])) { echo $result->data['id']; }
另一种方法,是使一个小小的
function echoVar(&$input=null) { if (isset($input)) { echo $input; } }
echoVar($result->data['id']);
echoVar($result->data['name']);
我没有真正使用的迷你功能的方法,所以我不能说:漂浮有关您重用辅助函数当然如果它真的更容易些,因为它确实会遮住你的代码,以后再读它。
有一点需要注意的是,isset可以采用完整的嵌套变量,并且它会一步步检查。您不需要在预期值的每个级别上连续扣三个issets。
if (!empty($result->data['id'])) {
echo $result->data['id'];
}
什么如果他的值已设置,但它是故意的(或零)?使用'empty()'也不行。 – IncredibleHat
如果它是空的,他不能回应它。我抓住了一个事实,他的数据ID号码不会为零 – miknik
对,我想以为ID不应该是空的(希望!)。但是,如果他要为各种事情使用“速记”,当一个零点想要输出时,它可能会让他绊倒在路上。 – IncredibleHat
最简单吗?它们就像打字一样简单。你的意思是,最有效的,更少的开销,最干净的代码也许? – IncredibleHat
字面上最少的打字量来完成工作。 – jozenbasin
[在PHP中测试变量存在的最佳方法; isset()显然是打破](https://stackoverflow.com/questions/418066/best-way-to-test-for-a-variables-existence-in-php-isset-is-clearly-broken) –