ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向、クラスの自動ロード、オブジェクトのシリアル化、ポリモーフィック アプリケーション_PHP チュートリアル
この記事では、オブジェクト指向 PHP におけるクラスの自動読み込み、オブジェクトのシリアル化、およびポリモーフィック アプリケーションの応用例を紹介します。詳しく知りたい学生は参照してください。
クラスの自動ロード
多くの開発者がオブジェクト指向アプリケーションを作成するとき、各クラスの定義用の PHP ソース ファイルを作成します。大きな煩わしさは、各スクリプトの先頭にインクルード ファイルの長いリスト (クラスごとに 1 つのファイル) を記述しなければならないことです。
ソフトウェア開発システムでは、すべてのクラスを PHP ファイルに記述することは不可能であり、別のファイルで宣言されたクラスを PHP ファイルで呼び出す必要がある場合は、そのファイルを include を通じて導入する必要があります。ただし、多くのファイルを含むプロジェクトでは、必要なクラスのすべてのファイルを 1 つずつインクルードするのが面倒な場合があります。では、このクラスを使用するときに、php ファイルをどこにインポートすればよいでしょうか。これがここで説明する自動読み込みクラスです。
PHP 5 では、まだ定義されていないクラスを使用しようとすると自動的に呼び出される __autoload() 関数を定義できます。この関数を呼び出すことで、スクリプト エンジンは必要なものをロードする最後の機会を得ることができます。 PHP がエラーで失敗する前に、__autoload() 関数によって受け取られるパラメータの 1 つは、ロードするクラスのクラス名であるため、プロジェクトで作業するときは、ファイル名を整理するときに特定のルールに従う必要があります。定義されたクラスの中心に置くのが最善ですが、xxx_classname.php、classname_xxx.php、classname.php などの統一されたプレフィックスまたはサフィックスを追加することもできます。この例では、MyClass1.php ファイルと MyClass2.php ファイルからそれぞれ MyClass1 と MyClass2 をロードしようとします。コードは次のとおりです。 。 Php '; load () 関数、パラメータ「MyClass1」を渡します
$obj = new MyClass1();//MyClass2 クラスは存在しないため、自動的に __autoload() 関数を呼び出し、パラメータ「MyClass2」を渡します
オブジェクトをシリアル化する必要がある状況は 2 つあります。1 つ目は、オブジェクトがネットワーク経由で送信される場合であり、2 つ目は、オブジェクトがファイルまたはデータベースに書き込まれる場合です。 シリアル化には 2 つのプロセスがあります。1 つはオブジェクトをバイナリ文字列に変換するシリアル化であり、もう 1 つはオブジェクトをバイナリ文字列に変換する逆シリアル化です。変換されたバイナリ文字列は、unserialize() 関数を使用してオブジェクトを逆シリアル化します。この関数のパラメータはオブジェクト名であり、戻り値は文字列です。戻り値 文字列の意味はあいまいです。通常、オブジェクト情報を取得するために文字列を解析する必要はありません。返された文字列をネットワークの反対側に渡すか、コンポーネントに保存するだけです。 PHP の unserialize() 関数は、オブジェクトを逆シリアル化するために使用されます。この関数のパラメーターは、当然、再編成されたオブジェクトです
|