既に設定したパラメータのgetおよびsetメソッドをオーバーライドすることはできますか?だから、私がパラマウントを設定するたびに、私はそれを使って作業するためのアクセス権を持っています/それを検証しますか?PHPのオーバーライド設定メソッド
class User {
public $username;
function custom_set($name, $value) {
if(strlen($value) < 5) {
return "not long enough";
} else {
$this->$name = $value;
}
}
}
$u = new User();
$u->username = "ted";
echo $u->username;
出力:「十分な長さではない」
これは私がちょうど書いた非常に単純化した例であり、おそらくそれは私が何をしようとしています何を伝えることだけですが、エラーが含まれています。
基本的に私が$u->username = "anything";
と呼ぶ度に、custom_set
メソッドを呼びたいと思います。
が、私はコンストラクタで検証を行うにはしたくないと私は$u->setVal("ted");
のような別のメソッドを作成したくない、これは可能ですか?
* *パラメータ*を格納するための単純な配列を使用せず、本当の*オブジェクトプロパティ*を使用しないのはなぜですか?あなたの '__set'と' __get'マジックメソッドは、未定義属性のために呼び出されるだけです: "このメソッドは、未定義属性のデータを取得しようとすると自動的に呼び出されます"という理由で、常に – dcestari