在initalizie之前检查变量是否有意义呢?

时间:2010-10-18 16:33:59

标签: php oop

如果我检查对象是否已经存在于像php这样的语言中,是否有任何优势?

    /**
     * User object
     * @var My_Model_User
     */
    protected $user = null;


    /**
     * Setup
     */
    public function __construct()
    {
        if ($this->user === null) {
            $this->user = new stdClass();
        }
    }

2 个答案:

答案 0 :(得分:1)

在您的特定示例中,它没有任何意义,因为构造函数是要执行的第一个方法。所以之前,该对象不存在,因此它的成员也不存在,所以你可以简单地假设变量仍然保持其初始值。

但是,如果您使用的变量在使用过程中会发生变化,那么检查关键部件的存在性可能是个好主意。例如,如果某个服务器连接有一个连接对象,并且可以在不破坏对象(拥有该连接)的情况下关闭连接,那么在您想要访问时检查连接是否仍然存在是个好主意。它

答案 1 :(得分:1)

除非$ user是静态的,并且您正在尝试实现Singleton模式,否则无需执行此操作。