PHP在对象类中分配Var值的最佳方法

时间:2017-12-29 07:35:08

标签: php class oop

我只是想知道在PHP Class中分配默认值的最佳方法是什么。

实施例: PHP构造函数__construct()方法是在调用类时将读取的第一个方法。所以这里有一些代码:

class A{
   private $x;

   public function __construct(){
       //Var x iniated in constructor method
       $this->x = "some values";
   }
}

上面的示例我将x变量放入构造函数方法中的“某些值”。

我也试过这个(下面的代码)并且它也是一样的。

class A{
    private $x = "some values";

    public function __construct(){
        //Var x initiated out of constructor method
    }
}

我的问题是,哪一个是最佳做法?

2 个答案:

答案 0 :(得分:3)

TL; DR; 为了便于阅读,尽可能使用默认值,当您无法将值指定为默认值时,请使用函数进行设置。

如果您使用静态方法,则不会调用__construct,因此您的值将不会设置。

如果是文字值,最好将其设置为默认值(private $x = 'some value'),否则使用构造函数/ setter / factory方法设置此值:

private static $x;

public function getX() {
    if (empty(self::$x)) {
        self::$x = new XClass();
    }

    return self::$x;
}

public function randomTest() {
    $x = $this->getX()->callMethod()->doStuff();
}

答案 1 :(得分:-1)

//如果您想要动态值分配,​​这可能会更好。

  class A{
       private $x;

       public function __construct(){
           //Var x iniated in constructor method
           $this->x = "some values";
       }
    }

//如果你想要静态/常量值赋值,这可能会更好。

class A{
    private $x = "some values";

    public function __construct(){
        //Var x initiated out of constructor method
    }
}