PHP (14) オブジェクト指向のマジック メソッド __set()、__get()、__isset()、および __unset()

WBOY
リリース: 2016-06-21 08:48:43
オリジナル
938 人が閲覧しました

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

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

__isset() メソッドは、プライベート属性値が設定されているかどうかを検出するために使用されます。

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

実際のアプリケーションではクラスの属性がprivateに設定されていることが多く、属性へのアクセスが必要な場合に面倒になります。プロパティへのアクセスはメソッドとして記述することができますが、PHP にはそのような操作を容易にする特別なメソッドがいくつか用意されています。

__set()

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

関数 __set($property_name, $value)

{

$this->$property_name = $value;

}

クラスで __set() メソッドを使用した後、 $p1->name = "Zhang San"; を使用してオブジェクトのプライベート属性の値を設定すると、 __set() メソッドが自動的に呼び出されて設定されます。私有財産の価値。

__get()

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

関数 __set($property_name, $value)

{

return isset($this->$property_name) ? $this->$property_name : null;

}

例:

[php]

クラス パーソン {

プライベート $name

プライベート$セックス

プライベート$年齢

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

関数 __set($property_name, $value) {

echo "プライベート属性の値を直接設定する場合、この __set() メソッドが自動的に呼び出され、プライベート属性に値が割り当てられます
";

$this->$property_name = $value;

}

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

関数 __get($property_name) {

echo "プライベート属性値を直接取得する場合、この __get() メソッドが自動的に呼び出されます
";

return isset($this->$property_name) ? $this->$property_name : null;

}

}

$p1=新しい人()

//プライベート属性に値を直接割り当てる場合、割り当てのために __set() メソッドが自動的に呼び出されます

$p1->name = "張三"

//プライベート属性の値を直接取得します。__get() メソッドが自動的に呼び出され、メンバー属性の値が返されます

echo "私の名前は:".$p1->name;

?>

実行、出力:

プライベート属性の値を直接設定すると、__set() メソッドが自動的に呼び出され、プライベート属性に値が割り当てられます

プライベート属性値を直接取得する場合、この __get() メソッドが自動的に呼び出されます

私の名前は張三です

__isset()

__isset() メソッドは、プライベート属性値が設定されているかどうかを検出するために使用されます。

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

プライベート関数 __isset($property_name)

{

return isset($this->$property_name);

}

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

__unset()

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

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

プライベート関数 __unset($property_name)

{

unset($this->$property_name);

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!