PHP 特別メソッド set()、get()、isset()、および unset()

WBOY
リリース: 2016-06-23 13:43:02
オリジナル
1043 人が閲覧しました

  • __set() メソッドは、プライベート プロパティ値を設定するために使用されます。
  • __get() メソッドは、プライベート属性値を取得するために使用されます。
  • __isset() メソッドは、プライベート属性値が設定されているかどうかを検出するために使用されます。
  • __unset() メソッドは、プライベート属性を削除するために使用されます。
  • 実際のアプリケーションではクラスの属性がprivateに設定されていることが多く、その属性にアクセスする必要がある場合に面倒になります。プロパティへのアクセスはメソッドとして実装できますが、PHP にはそのような操作を容易にする特別なメソッドがいくつか用意されています。

    __set()

    __set() メソッドは、プライベート属性値を設定するために使用されます:

    function __set($property_name, $value){     $this->$property_name = $value; }
    ログイン後にコピー
    ログイン後にコピー

    クラス内で __set() メソッドを使用した後、 $p1->name = "Zhang San"; を使用する場合オブジェクトのプライベート プロパティの値を設定すると、__set() メソッドが自動的に呼び出され、プライベート プロパティの値が設定されます。

    __get()

    __get() メソッドはプライベート属性値を取得するために使用されます:

    function __set($property_name, $value){     return isset($this->$property_name) ? $this->$property_name : null;}
    ログイン後にコピー
    ログイン後にコピー

    例:

    <?phpclass Person {    private $name;    private $sex;    private $age;    //__set()方法用来设置私有属性    function __set($property_name, $value) {         echo "在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值<br />";        $this->$property_name = $value;     }    //__get()方法用来获取私有属性    function __get($property_name) {          echo "在直接获取私有属性值的时候,自动调用了这个 __get() 方法<br />";        return isset($this->$property_name) ? $this->$property_name : null;    }}$p1=new Person();//直接为私有属性赋值的操作, 会自动调用 __set() 方法进行赋值$p1->name = "张三";//直接获取私有属性的值, 会自动调用 __get() 方法,返回成员属性的值echo "我的名字叫:".$p1->name;	?>
    ログイン後にコピー
    ログイン後にコピー

    サンプルを実行し、出力:

    在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值在直接获取私有属性值的时候,自动调用了这个 __get() 方法我的名字叫:张三
    ログイン後にコピー
    ログイン後にコピー

    __isset()

    __isset() メソッドは検出に使用されますprivate 属性値が設定されているかどうか。

    オブジェクト内のメンバーがパブリックの場合は、 isset() 関数を直接使用できます。プライベート メンバー属性の場合は、クラスに __isset() メソッドを追加する必要があります:

    private function __isset($property_name){    return isset($this->$property_name);}
    ログイン後にコピー
    ログイン後にコピー

    このようにして、 isset() 関数がクラスの外部で使用され、オブジェクト内のプライベート メンバーが設定されているかどうかを判断します。を検出すると、__isset() メソッドが自動的に呼び出され、検出されます。

    __unset()

    __unset() メソッドは、プライベート属性を削除するために使用されます。

    isset() 関数と同様に、unset() 関数はオブジェクトのパブリック メンバー属性のみを削除できます。オブジェクト内のプライベート メンバー属性を削除したい場合は、 __unset() メソッドを使用する必要があります。

    private function __unset($property_name){    unset($this->$property_name);}
    ログイン後にコピー

    __set() プライベート プロパティ値を設定するために使用されるメソッド。

  • __get() メソッドは、プライベート属性値を取得するために使用されます。
  • __isset() メソッドは、プライベート属性値が設定されているかどうかを検出するために使用されます。
  • __unset() メソッドは、プライベート属性を削除するために使用されます。
  • 実際のアプリケーションではクラスの属性がprivateに設定されていることが多く、その属性にアクセスする必要がある場合に面倒になります。プロパティへのアクセスはメソッドとして記述することができますが、PHP にはそのような操作を容易にする特別なメソッドがいくつか用意されています。

    __set()

    __set() メソッドは、プライベート属性値を設定するために使用されます:

    function __set($property_name, $value){     $this->$property_name = $value; }
    ログイン後にコピー
    ログイン後にコピー
    クラス内で __set() メソッドを使用した後、 $p1->name = "Zhang San"; を使用する場合オブジェクトのプライベート プロパティの値を設定すると、__set() メソッドが自動的に呼び出され、プライベート プロパティの値が設定されます。

    __get()

    __get() メソッドはプライベート属性値を取得するために使用されます:

    function __set($property_name, $value){     return isset($this->$property_name) ? $this->$property_name : null;}
    ログイン後にコピー
    ログイン後にコピー
    例:

    <?phpclass Person {    private $name;    private $sex;    private $age;    //__set()方法用来设置私有属性    function __set($property_name, $value) {         echo "在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值<br />";        $this->$property_name = $value;     }    //__get()方法用来获取私有属性    function __get($property_name) {          echo "在直接获取私有属性值的时候,自动调用了这个 __get() 方法<br />";        return isset($this->$property_name) ? $this->$property_name : null;    }}$p1=new Person();//直接为私有属性赋值的操作, 会自动调用 __set() 方法进行赋值$p1->name = "张三";//直接获取私有属性的值, 会自动调用 __get() 方法,返回成员属性的值echo "我的名字叫:".$p1->name;	?>
    ログイン後にコピー
    ログイン後にコピー
    サンプルを実行し、出力:

    在直接设置私有属性值的时候,自动调用了这个 __set() 方法为私有属性赋值在直接获取私有属性值的时候,自动调用了这个 __get() 方法我的名字叫:张三
    ログイン後にコピー
    ログイン後にコピー
    __isset()

    __isset() メソッドは検出に使用されますprivate 属性値が設定されているかどうか。

    オブジェクト内のメンバーがパブリックの場合は、 isset() 関数を直接使用できます。プライベート メンバー属性の場合は、クラスに __isset() メソッドを追加する必要があります:

    private function __isset($property_name){    return isset($this->$property_name);}
    ログイン後にコピー
    ログイン後にコピー
    このようにして、 isset() 関数がクラスの外部で使用され、オブジェクト内のプライベート メンバーが設定されているかどうかを判断します。を検出すると、__isset() メソッドが自動的に呼び出され、検出されます。

    __unset()

    __unset() メソッドは、プライベート属性を削除するために使用されます。

    isset() 関数と同様に、unset() 関数はオブジェクトのパブリック メンバー属性のみを削除できます。オブジェクト内のプライベート メンバー属性を削除したい場合は、 __unset() メソッドを使用する必要があります。れーれー

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