PHP_PHP チュートリアルの一般的なマジック メソッドの概要
一般的に使用されるマジック メソッドは次のとおりです: __Tostring () __Call() __autoLoad() __ clone() __GET() __SET() __isset() __unset()
1.__Tostring() は、出力オブジェクト参照を定義するときに呼び出すために使用されます。これは、一部のオブジェクトに関する情報を出力するためによく使用されます。 戻り値が必要です。
例: person クラスがあります
パージョンあたり =new persion()
Echo per; //直接呼び出すとエラーが発生します
__tostring() メソッドをクラス定義に追加できます
関数 __Tostring()
{
$str=this->$name.this->年齢;
$str;
を返します
}
2. __clone() オブジェクトのコピー
参考課題
$per1=$per2; そして、これはメモリ内にアドレスを 1 つだけ持ちます
そして $per1=clone $per2 この時点でメモリアドレスは 2 つあります
3.クラスインスタンスに存在しない関数を呼び出すと__call()メソッドが自動的に実行される
クラスに存在しない関数を呼び出そうとすると、わかりやすいプロンプトを表示するために構文エラーが発生します
。
クラス内で Call() メソッドを宣言できます;
関数 __call($funName,$argu)
{
エコー「パラメータ「.printf($argh).」を持つ「.$funName.」という名前の関数は存在しません」,
}
4.__autoLoadは使用するクラスファイルを自動で読み込みます
この関数は参照先のページに追加されます。
ページ内の他の php ファイルを呼び出す必要がある場合、私たちは皆、この状況を経験したことがあります
。
ただし、参照する必要があるページが数十ある場合は、ページの自動ロード メソッドを使用できます
。
関数 __autoload($className)
{
$className.".php";
を含めます
}
このように、他のクラスが参照される場合は、必ずクラスファイルが自動的に参照されるようになります。前提となるクラスファイル名は、クラス名.php
である必要があります。
5.__GET() クラス内のプライベート プロパティにアクセスします
クラス内のプロパティがプライベート プロパティとして設定されている場合、そのクラスのインスタンスからはアクセスできませんが、どうすればアクセスできるでしょうか?
__GET() を使用できます
例:
カテゴリに
があります
クラスの人
{
プライベート $name;
プライベート $age;
}
person を =new person() ごとにインスタンス化します
Per->$name; //この方法では値を取得できません
しかし、__GET メソッドをクラスに追加すると
関数__GET($proName)
{
これを返します->$proName;
}
Per->$name を再度呼び出すことでアクセスできます
このようにすると、プライベート変数に直接アクセスできるようになり、パブリックに宣言することと何が違うのかと疑問を持つ人もいるかもしれません。
public と宣言されていれば任意に読み込むことができ、private であれば get メソッドを追加すると、private 属性が呼び出されるたびに GET メソッドの内容が呼び出されるようにするため、論理的な処理を追加できます。 getメソッド。
6.__SET() はクラス www.2cto.com にプライベート属性を設定します
原理は上記と同じです。クラス インスタンスを呼び出すことでプライベート属性に値が割り当てられるたびに、__SET 関数のプロトタイプが実行されます。
関数 __SET($proName,$value)
{
これ->$proName=$value;
}
メソッドの代入なので論理的な処理ができます
7.__isset()は、クラス内のプライベート属性またはメソッドが存在するかどうかを判断するときに自動的に呼び出されます
まず、 isset メソッドを紹介します。このメソッドは、プロパティとメソッドが存在するかどうかを判断するために使用されます。ただし、クラス インスタンスを通じてプライベート プロパティが存在するかどうかを判断することはできません。
isset(per->$name);// 戻り値は false ですが、$name 属性は存在する場合、どうすれば解決できますか?
解決策:
1. $name をプライベート属性として定義します
2.
クラス定義に
を追加
関数 __isset($proName)
{
Return isset(this->$proName);//プライベートプロパティはクラス内でアクセス可能
}
この場合、 isset($name) を再度呼び出します。戻り値は true になります。
8.__unset() はクラス内のプライベート変数をクリアするときに自動的に呼び出されます
unset() と組み合わせると、クラス内の属性を削除する必要がある場合、それがパブリック属性であれば、直接
できます。
削除しますが、非公開の場合はこの方法だけでは削除できません
実装方法は? __unset() メソッドを使用してクラスに追加する必要があります
。
関数 __unset($proName)
{
設定を解除(this->$proName);
}
次に、unset($name) を呼び出して、person クラスのプライベート属性 $name を削除します
jt521xlgさんのコラムより抜粋

ホット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 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
