PHP中_set()インスタンスの使い方と基礎説明

4135 ワード

PHPでは2つの下線を引きます_冒頭の方法をマジックメソッド(Magic methods)と呼び,これらの方法はPHPにおいて重要な役割を果たしている.そのうち_set()は、クラスのメンバー変数を設定するときに呼び出されます.
__set()の役割:
__set($property,$value)`メソッドは、プライベート属性を設定するために使用され、未定義の属性に値を割り当てると、このメソッドがトリガーされ、渡されるパラメータは設定された属性名と値です.
次のプレゼンテーションコードを参照してください.

name = $name;

    $this->age = $age;

  }

  /**

   *             ,              ,           

   * @param $property

   * @param $value

   */

  public function __set($property, $value) {

    if ($property=="age")

    {

      if ($value > 150 || $value < 0) {

        return;

      }

    }

    $this->$property = $value;

  }

  /**

   *           ,          

   */

  public function say(){

    echo "  ".$this->name.",  ".$this->age."  ";

  }

}

$Person=new Person("  ", 25); //  ,          

//     __set()  ,    name       ,    ”  ”       

$Person->name = "  ";   //    。    __set(),   。

//     __set()  ,    age       ,    26       

$Person->age = 16; //    

$Person->age = 160; //160      ,    

$Person->say(); //  :    ,  16  

実行結果:

    ,  16  

ナレッジポイントの拡張
PHP 5中_get()、__set()メソッド
__get()メソッド:このメソッドは、プライベートメンバーのプロパティ値を取得するために使用されます.パラメータがあり、取得するメンバーのプロパティの名前を入力し、取得したプロパティ値を返します.メンバー属性がプライベートにカプセル化されていない場合、オブジェクト自体はこのメソッドを自動的に呼び出すことはありません.
__set()メソッド:このメソッドは、プライベートメンバーのプロパティに値を設定するために使用されます.2つのパラメータがあります.最初のパラメータは、値を設定するプロパティ名であり、2番目のパラメータは、プロパティに設定する値であり、戻り値はありません.(key=>value)

/*
*person.class.php
*/
name = $name;
    $this->age = $age;
    $this->sex = $sex;
    $this->addrs = $addrs;
  }
 
  private function __get($pri_name){
    if(isset($this->$pri_name)){
      echo "pri_name:".$this->$pri_name."
"; return $this->$pri_name; }else{ echo " ".$pri_name; return null; } } private function __set($pri_name,$value){ echo $pri_name." :".$value."
"; $this->$pri_name = $value; } function user($time){ $this->time = $time; echo " :".$this->name.", :".$this->age." , :".$this->sex.", :".$this->addrs.",--".$this->time."
"; } function __destruct(){ echo " :".$this->name."
"; } } ?>

/*
*person.php
*/
user(404);
 
  $Person->name = "aib";  // person.class.php  person  name    private 。              __set()    .    __set()      。
 
  echo $Person->name."
"; ?>

一般に、クラスのプロパティとメソッドを呼び出すときに、$this->nameまたは$this->name()を使用して完了します.簡単な例で$this->$nameの使い方を説明します.

name;  //    abc
    echo $this->$name1; //    abc,   $name1    name,         echo $this->name;
    $name2 = $this->$name1; // $name2     abc
    echo $this->$name2; //    test,  ,     echo $this->abc;
 }
}
?>