セットに関するご質問

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:46:261065ブラウズ

class aa{	function __set($pro, $v){		echo "a\n";		$this->pro=$v;		echo "$v\n";	}}$a=new aa;$a->b=1;


出力は a 1 1;

2 回出力されるのはなぜですか



ディスカッションへの返信)

echo "an"; を echo "$pron"; に変更すると、

b 属性が存在しないため、__set メソッドに入ります

pro また、pro 属性が存在しないため、 __set メソッドを再度実行します
1 2 回入力すると、値が 2 回出力されるのは不思議ではありません
1

$this->$pro=$v; に変更すると、一度だけ入ります




echo "an"; を echo "$pron"; に変更すると、
b 属性が存在しないため、__set メソッドに入ります

pro また、pro 属性があるため存在しない場合は、再度 __set メソッドに入ります

1 2 回入力すると、値が 2 回出力されるのも不思議ではありません

1

$this->pro=$v; が $this->$ に変更されると、 pro=$v;
これは 1 回しか入力されません



理解しています、主に $this->pro の問題です

通常、誤って $this->$val を記述すると、次のプロンプトが表示されます。未定義の変数; これがマジックメソッドでどのように使用されるかに気づきませんでした。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。