类变量在初始化之前总是为NULL吗?

时间:2017-09-06 12:51:27

标签: php

我的类包含一些setter方法,只有在setter参数正确时才设置类变量。现在我想在一个计算方法中评估其中几个类变量。如何确保每个变量都包含正确的值?如果我根据NULL检查相应的类变量以查看是否设置了值,或者我是否只能访问计算方法中的Getter方法,然后检查是否包含有效值,这是否足够?

简单地说一下:如果我使用' protected $ foo;'定义一个类变量,默认情况下,在每个PHP版本中它都是NULL,直到设置了另一个值,或者可以是一个未设置的变量,如C还包含随机值?

class Foo {
   protected $a;
   protected $b;

   public setA($val) {
        $valFiltered = filter_var($val, FILTER_VALIDATE_INT);
        if($valFiltered !== false) {
            $this->a = $valFiltered;
            return true;
        }
        else
            return false;
   }

   public setB($val) {
        $valFiltered = filter_var($val, FILTER_VALIDATE_INT);
        if($valFiltered !== false) {
            $this->b = $valFiltered;
            return true;
        }
        else
            return false;
   }

   public function sum() {
       if($this->a !== NULL && $this->b !== NULL)
           return $this->a + $this->b;
       else
           return false;
   }
}

0 个答案:

没有答案