请耐心等待,因为我对OOP概念很陌生,所以我在这里的想法可能是错误的。
我正在为我经常使用的某些功能开发一个类,我希望它可以在任何初始化的新项目中进行配置。这里需要注意的是,我想设置某些默认变量,并在默认值正常的情况下允许它们保持未配置状态。这里有一些代码,试图使概念更清晰一些。
class someClass{
// Setting parameter defaults
private $param_a = 60;
private $param_b = 100;
/*
* The construct function. What I'd like to do here is make the param_a and param_b optional,
* i.e if it doesn't get set on initialization it takes the defaults from the class.
*/
function __construct($param_a, $param_b, $foo){
// do something ...
}
}
$foo = "some value";
// init example using defaults
$someclass = new someClass($foo); // $param_a and $param_b should be 60 and 100 respectively
// init example using custom options
$someclass = new someClass(40, 110, $foo);
就如何设置类配置而言,我是否朝着正确的方向前进?如果是这样,如何使param_a和param_b可选?
function __construct($foo, $param_a = 60, $param_b = 100){
// do something ...
}
您可以先提供所需的方法参数,然后再提供具有默认参数的方法参数,使它们成为可选参数。
然后将这些分配给构造函数中的类变量。
另一种方法是使用 func_get_args() 并解析它。
你可以让构造函数采用一个一般的$args参数,并将其与一个默认值数组合并:
public function __construct($args = array()) {
$args = array_merge(array(
'param_a' => 60,
'param_b' => 100,
'foo' => null
), $args);
foreach($args as $key => $val) {
$this->$key = $val;
}
}