__set に関する質問
<br />class aa{<br /> function __set($pro, $v){<br /> echo "a\n";<br /> $this->pro=$v;<br /> echo "$v\n";<br /> }<br />}<br /><br />$a=new aa;<br />$a->b=1;<br />
ログイン後にコピー
出力は a a 1 1;
2 つの質問、なぜ 2 回出力されるのか;
なぜ a a 1 1、 a 1 a 1;
の代わりに------解決策のアイデア------ --echo "an"; を echo "$pron"; に変更すると、
b が表示されます。 b 属性が存在しないため、 __set メソッドに入ります
pro 同じ理由ですpro 属性は存在しません。
1
When $this->pro=$v;1 を入力しても不思議ではありません。 > $this->$pro=$v;
に変更すると、一度だけ入力できます