PHP の非一般メソッド _set()、get()、isset()、および _unset()
PHP の特殊メソッド __set()、__get()、__isset() および __unset()
- __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() メソッドは、プライベート属性値が設定されているかどうかを検出するために使用されます。
オブジェクト内のメンバーがパブリックである場合は、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() 関数を使用する必要があります。 ) メソッド:
private function __unset($property_name){ unset($this->$property_name);}

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP Notice: Tryingtogetpropertyofnon-object-Solution PHP 開発プロセス中に、「Tryingtogetpropertyofnon-object (非オブジェクトのプロパティを取得しようとしています)」という一般的なエラー メッセージが表示されることがあります。このエラーは通常、オブジェクト型ではない変数のプロパティにアクセスしようとした (またはメソッドを呼び出した) ときに発生します。この記事ではこれについて紹介します

PHP でコードを作成するときに、「通知: 未定義のプロパティ」というエラー メッセージが表示される場合があります。このエラーは、未定義のプロパティにアクセスしていることを意味します。通常、そのプロパティがコード内で初期化されていないことが原因です。では、この問題をどうやって解決すればよいでしょうか?考えられる解決策は次のとおりです。 プロパティを初期化する これは、この問題を解決する最も簡単な方法です。コード内でプロパティを明示的に初期化すると、使用前にプロパティが確実に定義されます。例: クラス

この記事では、PHP が配列内に指定されたキーが存在するかどうかを判断する方法について詳しく説明します。編集者が非常に実用的であると考えたので、参考として共有します。この記事を読んで何かを得ることができれば幸いです。 PHP は、指定されたキーが配列内に存在するかどうかを判断します。 PHP では、指定されたキーが配列内に存在するかどうかを判断する方法が数多くあります。 1. isset() 関数を使用します: isset($array["key"]) この関数ブール値を返します。指定されたキーが存在する場合は true、存在しない場合は false。 2. array_key_exists() 関数を使用します: array_key_exists("key",$arr)

Vue は、ユーザー インターフェイスを構築するための人気のある JavaScript フレームワークです。開発プロセス中に、さまざまなエラーや例外が発生することがあります。よくあるエラーの 1 つは、「TypeError:Cannotreadproperty'XXX'ofnull」です。この記事では、このエラーの原因とその修正方法について説明します。まず、このエラーの背後にある理由を理解しましょう。オブジェクトのプロパティまたはメソッドにアクセスしようとすると、そのペアが

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

TypeError:Vue で定義されていないプロパティ '$XXX' を読み取れません。解決策は何ですか? Vue 開発では、TypeError:Cannotreadproperty'$XXX'ofundefine などのエラーが頻繁に発生します。このエラーは通常、Vue インスタンスで未定義のプロパティまたはメソッドを使用したことが原因で発生します。このエラーが発生した場合、次のことを行う必要があります。

TypeError:Vue で定義されていないプロパティ 'XXX' を読み取れません。どうすればよいですか? Vue を使用して開発するフロントエンド開発者は、開発プロセス中に TypeError:Cannotreadproperty'XXX'ofunknown エラーに遭遇することがよくあります。このエラーは通常、未定義のプロパティにアクセスしようとしたときに発生します。存在する

Vue プロジェクトで発生した TypeError:Cannotreadproperty'XXX'ofunknown に対処する方法は? Vue の開発プロセス中に、TypeError:Cannotreadproperty'XXX'ofundefine などのエラーが頻繁に発生します。このエラーは通常、コード内の未定義のプロパティにアクセスしようとしたことが原因で発生します。この記事では、
