検索
ホームページphp教程php手册PHP (14) オブジェクト指向のマジック メソッド __set()、__get()、__isset()、および __unset()

__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);

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール