??要約: yii フレームワークのソースコードをトレースしているときに、__set() マジック メソッドの使用に遭遇し、少し混乱したため、それをテストするためにデモを作成し、謎を発見しました。次のように。
1. まず、本でマジック メソッド __set() がどのように使用されているかを見てみましょう
?? __set() マジック メソッドを使用する目的は、オブジェクトの外部のプライベート プロパティに値を割り当てることです。プライベート プロパティの値を取得します。
??関数プロトタイプ:
<code>void __set(string name,mixed value) </code>
デモを書く:
<code><span><span>class</span><span>CModule</span> {</span><span>private</span><span>$_components</span> = <span>''</span>; <span>public</span><span><span>function</span><span>__set</span><span>(<span>$name</span>,<span>$value</span>)</span>{</span><span>$this</span>-><span>$name</span> = <span>$value</span>; } <span>public</span><span><span>function</span><span>echoPrivate</span><span>()</span>{</span><span>echo</span><span>$this</span>->_components; } } <span>$config</span> = <span>array</span>( <span>'_components'</span>=><span>'request'</span> ); <span>$module</span> = <span>new</span> CModule(); <span>$module</span>->_components = <span>'request'</span>; <span>$module</span>->echoPrivate(); <span>//打印结果是</span><span>//request</span></code>
<続きます(眠すぎる)>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });以上、PHP マジックメソッドの内容も含めて PHP マジックメソッドについて詳しく紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。