私が持っているとしましょう
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 のコードに関係なく、常に「文字列」です。
プロパティを公開せずに、メソッド内でパラメーターの値を割り当てずに、最初に引用されたコードからポイントを達成する方法はありますか?