为什么许多PHP开发人员讨厌使用isset()和/或PHP的类似防御功能(例如empty())?
在stackoverflow上,我一直看到这个问题: E_NOTICE?== E_DEBUG,避免使用更复杂的error_handler的isset()和@ 当E_NOTICE打开时,如何设置PHP不检查$ _GET的未定义索引? 如何停止PHP记录PHP通知错误 如何关闭此类PHP 5.3声明? 甚至Pekka(提供了很多可靠的PHP建议)也碰到了可怕的E_NOTICE怪物,并希望有一个比使用更好的解决方案isset():isset()和empty()使代码丑陋 就个人而言,我使用isset()并empty()在很多地方来管理我的应用程序的流量。例如: public function do_something($optional_parameter = NULL) { if (!empty($optional_parameter)) { // do optional stuff with the contents of $optional_parameter } // do mandatory stuff } 甚至像这样的简单代码段: if (!isset($_REQUEST['form_var'])) { // something's missing, do something about it. } 对我来说似乎很合逻辑。它看起来不膨胀,看起来像稳定的代码。但是,许多开发人员使用E_NOTICE启用了,从而启动了他们的应用程序,发现了许多令人沮丧的“未初始化的数组索引”通知,然后对检查已定义的变量并使用来“乱丢”其代码感到无所适从isset()。 我认为其他语言处理问题的方式也不同。从经验来看,JavaScript不像PHP那样礼貌。未定义的变量通常会停止脚本的执行。另外,(从经验上来讲)我确定像C / C …