一般的に使用されるマジックメソッドは次のとおりです: Tostring () Call() autoLoad() clone() GET() SET() isset() unset()
1.Tostring()出力オブジェクトを定義するときに呼び出されます 参照 戻り値が必要な一部のオブジェクトに関する情報を出力するためによく使用されます
例: 永続クラスがあります
Persion per =new persion()
Echo per; に tostring() メソッドを追加します。定義
Function Tostring() { $str=this->$name.this->age; Return $str; }
2.clone() object copy
参照割り当て$per1=$per2; そして、これはメモリ内のアドレスを1つだけ持ちます
そして$per1=clone $per2 この時点でメモリアドレスは2つあります
3. クラスインスタンスに存在しない関数を呼び出すとcall()メソッドが自動的に実行されます
クラスに存在しない関数を呼び出そうとすると構文エラーが表示されますフレンドリーなプロンプトを提供するため クラス内で Call() メソッドを宣言できます。
Function call($funName,$argu) { Echo "名为".$funName."参数为".printf($argh)."的函数不存在", }
4.autoLoad この関数は参照先のページに追加されます 私たちは皆、この状況を使用したことがあります。ページ ファイル内で他の PHP を呼び出す必要がある場合は、
include メソッド を使用する必要がありますが、参照する必要があるページが数十ある場合は、ページ内で autoload メソッドを使用できます。
Function autoload($className) { Include $className.".php"; }
5.GET() クラス内のプライベート プロパティにアクセスします。
クラス内のプロパティがプライベート プロパティに設定されている場合、クラスのインスタンスからはアクセスできません。アクセスするにはどうすればよいでしょうか?GET()を使用できます
例:
person per=new person()をインスタンス化するクラスには
class person { Private $name; Private $age; }
Function GET($proName) { Return this->$proName; }
Per->$name を再度呼び出すことでアクセスできます
この方法では、プライベート変数に直接アクセスできます。パブリック宣言との違いは何ですか。 ?
public宣言されている場合は任意に読み込むことができ、privateであればgetメソッドを追加するとprivate属性が呼び出されるたびにGETメソッドの内容が呼び出されるようにするため、論理的な処理を追加することができます。 getメソッドに。
6.SET() は、クラスのプライベート プロパティを設定します。原理は、クラス インスタンスを呼び出すことでプライベート プロパティに値を割り当てるたびに、クラスに追加できます。 SET関数が実行されます
関数プロトタイプ:
Function SET($proName,$value) { This->$proName=$value; }
プロパティとメソッド
が存在するかどうかを判断するために使用されるissetメソッドです。ただし、クラスインスタンスを通じてクラス内のプライベート属性が存在するかどうかを判断することはできませんisset(per->$)を使用すると、 name);//戻り値は false ですが、$name 属性は存在します。どうすれば解決できますか?
解決策:
1. $name をプライベートプロパティとして定義します。2. Function isset($proName)
{
Return isset(this->$proName);//再类内部是可以访问私有属性的
}
をクラス定義に追加します。この場合、戻り値は true になります。 ; 8.unset() はクラス内のプライベート変数をクリアするときに自動的に呼び出されます
それと組み合わせて unset() メソッドは、クラス内の属性を削除する必要がある場合、それがパブリックである場合に使用します。属性を直接
Function unset($proName){Unset(this->$proName);}
です。
以上がphp でのいくつかのマジック メソッドの構文と使用例のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。