ホームページ > バックエンド開発 > PHPチュートリアル > php でのいくつかのマジック メソッドの構文と使用例のまとめ

php でのいくつかのマジック メソッドの構文と使用例のまとめ

伊谢尔伦
リリース: 2023-03-14 09:24:01
オリジナル
1679 人が閲覧しました

一般的に使用されるマジックメソッドは次のとおりです: 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";
}
ログイン後にコピー

. このように、他のクラスが参照される場合は、そのクラスが自動的に参照されます。 前提条件 クラス ファイルの名前は、クラス名.php

5.GET() クラス内のプライベート プロパティにアクセスします。

クラス内のプロパティがプライベート プロパティに設定されている場合、クラスのインスタンスからはアクセスできません。アクセスするにはどうすればよいでしょうか?

GET()を使用できます
例:

person per=new person()をインスタンス化するクラスには

class person
{
Private $name;
Private $age;
}
ログイン後にコピー
があります
Per->$name; //この方法では値を取得できません
しかしクラスに GET メソッドを追加すると

Function GET($proName)
{
Return this->$proName;
}
ログイン後にコピー

Per->$name を再度呼び出すことでアクセスできます
この方法では、プライベート変数に直接アクセスできます。パブリック宣言との違いは何ですか。 ?
public宣言されている場合は任意に読み込むことができ、privateであればgetメソッドを追加するとprivate属性が呼び出されるたびにGETメソッドの内容が呼び出されるようにするため、論理的な処理を追加することができます。 getメソッドに。


6.SET() は、クラスのプライベート プロパティを設定します。原理は、クラス インスタンスを呼び出すことでプライベート プロパティに値を割り当てるたびに、クラスに追加できます。 SET関数が実行されます
関数プロトタイプ:

Function SET($proName,$value)
{
This->$proName=$value;
}
ログイン後にコピー
メソッド代入なので論理的な処理ができます
7.isset()はクラス内のプライベートプロパティやメソッドが存在するかどうかを判断する際に自動的に呼び出されます

まず、issetメソッドを紹介します。

プロパティとメソッド

が存在するかどうかを判断するために使用される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);}
ログイン後にコピー
を追加する必要があります。これで、unset($name) を呼び出して削除できます。 person クラスの $name は

です。

以上がphp でのいくつかのマジック メソッドの構文と使用例のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート