使用包装类来隐藏错误可以接受吗


Is it acceptable to use a wrapper class to hide errors?

是否可以将全局数组封装在类中以用OOP隐藏undefined错误(并返回false)?如果没有,为什么?

我正在使用以下Input包装器类。主要将它与我的FormValidator类一起使用,这样我就不必为要使用/检查的N个输入量编写isset()

class Input {
    private $_source;
    public function __construct(Array $source){
        $this->_source = $source;
    }
    public function exists() {
        return !empty($this->_source);
    }
    public function get($input) {
        return (isset($this->_source[$input])) ? $this->_source[$input] : false;
    }
}

正如对你的问题的好评论所指出的,你可以用不同的方法,也许还有更好的内置概念来解决你提出的问题。

但是,为了回答您关于PHP中OOP实践的问题,我明确认为在包装类中隐藏错误是合法的。

我认为它是一个黑盒子,这个错误的概念可能在外面不知道,因为你的界面没有记录它

错误处理可以在包装器内部实现,以便以后以一种不需要外部已知的方式处理这些错误。

这没关系,但所有的错误都应该在一般情况下处理,隐藏或吞下它们可能会产生奇怪的行为。