最佳实践,我发现自己这个做了很多:PHP:无提示失败
$something = @$_GET['else'];
if ($something) {
// ...
} else {
// ...
}
一样,几乎每当我处理阵列。我习惯于JavaScript和简单检查虚假价值的能力。但是,这在PHP中是否合适?我是否试图强制PHP成为我已经理解的东西,而不是将它学习为自己的语言?
编辑
我udnerstand,我可以只使用isset
(我也* *下忍受了),但它笨重的感觉对我来说,这导致在那里我想呼应,甚至笨重的情况值:
// what I want to do
echo '<input type="text" name="whatever" value="', @$values['whatever'], '" />';
// what I fear I must do
echo '<input type="text" name="whatever" value="';
if (isset($values['whatever'])) {
echo $values['whatever'];
}
echo '" />';
抛开卫生问题,我更喜欢第一个版本。但我有一个偷偷摸摸的怀疑,这是一个很大的禁忌。 (我也有一个鬼鬼祟祟的怀疑,我不知道如何拼写“的嫌疑。”)
关于您的编辑:我想你想做的事就好了。一个不存在的'$ values ['whatever']'会出现为空值并被转换为空字符串。错误抑制的范围是有限的,它不会隐藏你需要看到的错误。 – awm