PHPでよく使われるマジックメソッドのまとめ

怪我咯
リリース: 2023-03-13 22:46:01
オリジナル
2063 人が閲覧しました

オブジェクト指向プログラミングでは、PHP はプログラミングに非常に便利な一連の マジック メソッドを提供します。 PHP のマジック メソッドは通常 (2 つのアンダースコア) で始まり、明示的な呼び出しは必要ありませんが、特定の条件によってトリガーされます。この記事では、php で一般的に使用される マジック メソッドのみを紹介します。必要な方は参照してください。

よく使用されるマジック メソッドは、Tostring () Call() autoLoad() GET() SET です。 () isset( ) unset()

1.Tostring() 参照時に呼び出される出力オブジェクトの定義に使用されます 戻り値が必要な一部のオブジェクトに関する情報を出力するためによく使用されます 例: 永続性がありますclass Persion per =new persion()
Echo per; //直接呼び出しはエラーになります
クラス定義に tostring() メソッドを追加できます


コードは次のとおりです:

Function  Tostring()
{
$str=this->$name.this->age;
Return $str;
}
ログイン後にコピー

2.Clone () object copy

Reference assign
$per1=$per2; そして、これはメモリ内に 1 つのアドレスしかありません
そして、$per1=clone $per2 現時点では 2 つのメモリアドレスがあります


3。クラスインスタンスに存在しない関数を呼び出すと自動的に実行されます
クラスに存在しない関数を呼び出すと
構文エラー
が発生するため、わかりやすいプロンプトを提供します。クラス内で Call() メソッドを宣言できます;

Function call($funName,$argu)
{
Echo "名为".$funName."参数为".printf($argh)."的函数不存在",
}
ログイン後にコピー

4.autoLoad

使用されるクラス ファイルを自動的にロードします。この関数は、他のページを呼び出す必要がある場合に使用します。ページ内に php ファイルがある場合は、include メソッド を使用する必要があります。しかし、参照する必要があるページが数十ある場合は、ページに autoload メソッド

Function autoload($className)
{
Include $className.".php";
}
ログイン後にコピー
を追加することができます。他のクラスが参照される場合、そのクラス ファイルは自動的に参照されます。前提条件のクラス ファイルの名前は class name.php5.GET() である必要があります。クラス内のプライベート プロパティにアクセスします

If クラス内の属性がプライベート属性として設定されており、クラスのインスタンスではアクセスできませんが、どうすればアクセスできるのでしょうか?

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( を使用した場合、クラス内のプライベート プロパティが存在するかどうかを判断することはできません。 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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート