前回の記事では「PHPにおける継承と派生とは何ですか?」についてご紹介しました。継承をどのように使用するのでしょうか? 》ということで、この記事ではPHPのマジックメソッドとは何なのかを引き続き紹介していきます。よく使われる魔法の方法は何ですか?一定の参考値があるので、困っている友達が参考になれば幸いです。
#1. マジック メソッドとは
#システムが特定の時間に自動的に呼び出すメソッド
2. 一般的に使用されるマジック メソッド:
_get
トリガー タイミング: オブジェクトがプライベート メンバーまたは保護されたプロパティにアクセスするときに呼び出されます。 externally
このメソッドには 1 つのパラメーターがあります。パラメーターは属性名です。
コードを例として見てみましょう。
まず、新しいコードを作成します。ファイルを作成し、クラス Class を記述し、クラス内で属性を定義して、オブジェクトを作成します。定義したクラスをエコーすると、オブジェクトはパブリック属性のみにアクセスでき、プロテクト属性とプライベート属性にはアクセスできないため、エラーが見つかります。 .属性、コードは次のとおりです:
<?php class Person { public $name = '林徽因'; protected $pome = '答案很长,我准备用一生的时间来回答,你准备要听了吗?'; private $time = '民国' ; } $niu = new Person(); echo $niu->pome; ?>
コードは結果を表示します:
上記のコードを実行すると、エラーがあることがわかります。したがって、保護されたプロパティには外部からアクセスできません。また、プライベート プロパティ、オブジェクトを通じて外部から保護されたメンバー プロパティまたはプライベート メンバー プロパティにアクセスしたい場合は、get メソッドが自動的にトリガーされます。
public function __get($name){ echo $name; }
その後、 $name を出力します。
コードは結果を表示します:
したがって、if ステートメントを使用して判断できます。上記のコード:
if ($name == 'pome'){ return $this->pome;
コードは結果を表示します:
上記は get use と呼ばれるものです
- -set
トリガー タイミング: オブジェクトがプライベートまたは保護されたメンバー属性値を外部に設定するときに呼び出されます
このメソッドには 2 つのパラメーターがあります:
パラメータ 1: メンバ属性名!
パラメータ 2: 設定する値
コードを例として見てみましょう:
すべての Magic メソッドはすべて public を使用します。上記のように、クラスで属性を定義し、オブジェクトを作成します。set 属性には 2 つのパラメーターがあり、1 つは属性名、もう 1 つは属性値です。印刷します。
public function __set($name,$value) { var_dump($name,$value); } } $niu = new Person(); //echo $niu->pome; $niu->pome = '答案很长,我准备用一生的时间来回答,你准备要听了吗?';
コード表示結果:
#補足: (詳しい説明は次回)
unset を外部から使用できます。 オブジェクト内のパブリック プロパティを破棄します。_unset
トリガー タイミング: プライベートまたは保護されたメンバー プロパティが外部から破棄されると、オブジェクトが呼び出されます。 このメソッドにはパラメータが 1 つあります: パラメータはプライベート メンバーの属性名です_isset
トリガーのタイミング: 外部からの判断時にオブジェクトが呼び出されますプライベートまたは保護されたメンバー属性、このメソッドにはパラメーターが 1 つあります。パラメーターはプライベート メンバー属性名ですconstruct:構築メソッド
トリガー時間: オブジェクトの作成時に自動的に呼び出されます
destruct: 破壊メソッド
toString (理解)トリガーのタイミング: オブジェクトが作成されたときにエコートリガーこの関数には return -A 文字列が必要です__debugInfo (理解)
トリガー タイミング: var_dump -- オブジェクトが発生したときにトリガーしますThis関数は配列を返す必要があります 推奨される学習:以上がPHP のマジック メソッドとは何ですか?よく使われる魔法の方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。