比方说,我想检查几个不同的参数,然后回到默认值,有没有办法做到这一点,没有难看和详细的写作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,因为我想从根本上解决问题,如果可能的话,而不是只是将它的报告静音。 –