假设我有
class A {
private $_property = 'string';
public function method($property=$this->_property) {
// ...
}
}
它不允许我这样做。
我想这样做的原因是(可能是不好的做法,但仍然......):
我希望在此类中的每个方法中属性的默认值都是“字符串”,但我不希望
public function method($property='string')
因为如果我需要更改它,我必须在每个方法中都这样做我想在实例化类并使用此方法时传递参数,所以最近我需要
$class = new A(); $param = 'string2'; $class->method($param);
由于
$_property
是私有的,我无法更改其值如果我做:
class A {
private $_property = 'string';
public function method($property) {
$property = $this->_property;
}
}
它不允许我从外部更改参数。我的意思是,无论第 2 点的代码如何,它始终是“字符串”。
无论如何从第一个引用的代码中实现这一点,而不公开属性,既不在方法内部分配参数的值?