回聲$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) –