我只是想知道在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
}
}
我的问题是,哪一个是最佳做法?
答案 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
}
}