比方說,我想檢查幾個不同的參數,然後回到默認值,有沒有辦法做到這一點,沒有難看和詳細的寫作isset()
?如何避免對'默認'值鏈的未定義索引警告?
例如,在JS,我們可以這樣做:
var someVariable = otherVar || anotherVar || 'fallback here';
PHP中的等價會是這樣的:
$someVariable = (isset($otherVar) ? $otherVar : (isset($anotherVar) ? $anotherVar : 'fallback here'));
這顯然是一個爛攤子和可怕的閱讀。
很多解決方案,爲單回退存在,即:
$someVariable = $otherVar ?: 'fallback here';
但是這並不能幫助我需要一個以上的支票的線。
鑑於我只關心該值是否設置或真值y(即我很高興1被接受爲使用的值,並且0/false/null被跳過並且對於要使用的鏈中的下一個參數),避免未定義索引警告的最佳方法是什麼?
實際上,我會在大多數的情況下對數組進行這樣的處理,但不是全部,也可能它們是不同的數組。我可能想爲第一個使用$ _POST,然後檢查另一個鍵下的$ _GET,然後回退到默認字符串。
我曾經做過error_reporting(0);警告消失.. – rahul
我使用error_reporting來檢查其他問題,所以我不想關閉它。 –
我也不想壓制E_NOTICE,因爲我想從根本上解決問題,如果可能的話,而不是隻是將它的報告靜音。 –