PHPのクラス変数への代入問題

WBOY
リリース: 2016-06-20 09:37:07
オリジナル
1655 人が閲覧しました

private $pagebarnum=10;$this->pagebarnum  = $array['page_name'];$this->set('pagebarnum ',$array['page_name']);/**     * 设定类中指定变量名的值,如果改变量不属于这个类,将throw一个exception     * @param unknown $var     * @param unknown $value     */    function set($var,$value){        if(in_array($var, get_object_vars($this))){            $this->$var = $value;        }else{            $this->error(__FUNCTION__,$var." does not belong to PB_Page!");        }    }
ログイン後にコピー

$this->pagebarnum = $array['page_name']; と $this->set('pagebarnum ',$array['page_name']); の違いは何ですか?明らかに、クラスで $pagebarnum を定義しましたが、値を割り当てるために set を使用する必要がありますか?


ディスカッションへの返信 (解決策)

変数の初期化もちろん調整は必要です。1 ページに必要なパラメータが 10 で、1 ページに必要なパラメータが 5 であるとします。クラスを 2 つ作成することになります。

もちろん、変数の初期化と調整が必要です。ページに必要なパラメーターが 10 で、ページに必要なパラメーターが 5 であるとします。クラスを 2 つ作成しますか?


クラスをインスタンス化してパラメータを渡すことで実現できますが、理解できないのは、set メソッドで $this->pagebarnum = $array['page_name']; を直接使用することです。 、まず変数が存在するかどうかを確認してください。違いは何ですか? pagebarnum は、その意味を確認するためにクラスを作成したときに定義されています。

$this->pagebarnum = $array['page_name'];
$this->set('pagebarnum',$array['page_name']);違いは、後者は存在しない属性 pagebarnum に値を割り当てないのに対し、前者は存在しない属性 pagebarnum に対してパブリックな pagebarnum 属性

を作成することです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート