1. __construct() と __destruct()
インスタンスが作成/破棄されるときに呼び出され、0 個以上のパラメーターを渡すことができます。
class A { function A() { echo "build A"; } function __destruct() { echo "destroy A"; } } $obj = new A(); //unset($obj);
Note: The destructorメソッドは、特定のオブジェクトへの他の参照がなくなるとすぐに、またはシャットダウンシーケンス中に任意の順序で呼び出されます。
コンストラクタに関しては、PHP5.3.3以降、定義は次のようになります。特定の名前空間内のクラス内のクラス名で名前が付けられたメソッドは、コンストラクターとはみなされなくなります。名前空間のないクラスでは、以前と同様にコンストラクターです。例:
namespace Foo;class Bar { public function Bar() { // treated as constructor in PHP 5.3.0-5.3.2 // treated as regular method as of PHP 5.3.3 }}
名前空間 Foo がない場合は、Bar() もコンストラクターとして使用されます。さらに、次の状況が存在する場合:
function __construct() { echo "construct A"; } function A() { echo "build A"; } function __destruct() { echo "destroy A"; } }
つまり、__construct() とクラス名と同じ名前の関数の両方が含まれている場合、__construct() のみが呼び出されます。
2. __call() と __callStatic()
存在しないメソッドを呼び出そうとしたときに呼び出されます。 2 つのパラメーター。1 つはメソッド名、もう 1 つは呼び出されたメソッドのパラメーター配列です。
class MethodTest{ public function __call($name, $arguments) { // Note: value of $name is case sensitive. echo "Calling object method '$name' " . implode(' ', $arguments). "<br>"; } public static function __callStatic($name, $arguments) { // Note: value of $name is case sensitive. echo "Calling static method '$name' " . implode(' ', $arguments). "<br>"; }}$obj = new MethodTest;$obj->runTest('in','object','context');MethodTest::runTest('in','static','context');
このうち、$arguments は配列として渡されます。実行結果:
Calling object method 'runTest' in object contextCalling static method 'runTest' in static context
また、関数のスコープが保護されプライベートであることにも注意してください:
class TestMagicCallMethod { public function foo() { echo __METHOD__.PHP_EOL."<br>"; } public function __call($method, $args) { echo __METHOD__.PHP_EOL."<br>"; if(method_exists($this, $method)) { $this->$method(); } } protected function bar() { echo __METHOD__.PHP_EOL."<br>"; } private function baz() { echo __METHOD__.PHP_EOL."<br>"; }}$test = new TestMagicCallMethod();$test->foo();/** * Outputs: * TestMagicCallMethod::foo */$test->bar();/** * Outputs: * TestMagicCallMethod::__call * TestMagicCallMethod::bar */$test->baz();/** * Outputs: * TestMagicCallMethod::__call * TestMagicCallMethod::baz */
3.__get() および __set()
に存在しない属性を読み取ろうとしたときオブジェクト時刻が呼び出されます。
注: この関数を使用して、Java のリフレクションと同様のさまざまな操作を実装できます。
class Test{ public function __get($key) { echo $key . " not exists"; } public function __set($key,$value) { echo $key . " = ".$value; }}$t = new Test();echo $t->name."<br>";$t->name = "abc";输出:name not existsname = abc
4. __toString()
このメソッドは、オブジェクトを直接出力する場合、この関数を呼び出し、文字列を返す必要があります。
すごいです
__isset()、__unset()、__sleep()、__wakeup()、__toString()、__invoke()、__set_state()、__clone() もありますが、詳細は説明しません。一つ。

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



