代码之家  ›  专栏  ›  技术社区  ›  opHASnoNAME

在初始化变量之前检查变量是否有意义?

  •  0
  • opHASnoNAME  · 技术社区  · 14 年前

    如果我检查对象是否已经存在于PHP之类的语言中,有什么好处吗?

        /**
         * User object
         * @var My_Model_User
         */
        protected $user = null;
    
    
        /**
         * Setup
         */
        public function __construct()
        {
            if ($this->user === null) {
                $this->user = new stdClass();
            }
        }
    
    2 回复  |  直到 12 年前
        1
  •  1
  •   poke    14 年前

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

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

        2
  •  1
  •   Alex Howansky    14 年前

    没有必要这样做,除非$user是静态的,并且您正试图实现单例模式。