PHP でのオブジェクト指向プログラミングの実装 (パート 2)_PHP チュートリアル

WBOY
リリース: 2016-07-13 11:00:10
オリジナル
863 人が閲覧しました

ポリモーフィズム
ポリモーフィズムは、実行時にオブジェクトがパラメーターとして渡されたときに、どのメソッドを呼び出すかを決定するオブジェクトの機能として定義されます。たとえば、クラスはメソッド "draw" を定義し、継承されたクラスは円または正方形を描画するために "draw" の動作を再定義します。これにより、パラメータ x を持つ関数が作成され、その中で $x を呼び出すことができます。 ->draw() ポリモーフィズムがサポートされている場合、「draw」メソッドの呼び出しはオブジェクト x のタイプに依存します。ポリモーフィズムは PHP で当然サポートされています (C++ コンパイラーでコンパイルされた場合、どのメソッドが呼び出されるか考えてみてください。ただし、オブジェクトの型が何であるかはわかりません。もちろん、現在はそうではありません)。
幸いなことに、PHP はポリモーフィズムをサポートしています。
function niceDrawing($x) {
//これがクラス Board のメソッドであるとします。
$x->draw();
$obj=new Circle(3,187);
$obj2=new Rectangle(4) ,5);
$board->niceDrawing($obj); //Circle の描画メソッドを呼び出します
?>
PHP におけるオブジェクト指向プログラミング
純粋なオブジェクト理論家は、PHP は真のオブジェクト指向言語ではないと信じており、それは正しいです。 PHP はハイブリッド言語であり、オブジェクト指向または従来の構造プログラミング手法と併用できます。ただし、大規模なプロジェクトの場合は、純粋なオブジェクト指向のアプローチを使用してクラスを定義し、プロジェクト内でオブジェクトとクラスのみを使用する必要がある場合があります。プロジェクトが大きくなるほど、オブジェクト指向のアプローチを使用すると、保守が容易になり、理解しやすく、再利用しやすくなります。これがソフトウェアエンジニアリングの基本です。 Web サイトのデザインでこれらの概念を使用することが、将来の成功の鍵となります。
PHP におけるオブジェクト指向の高度なテクニック
オブジェクト指向の基本的な概念を確認した後、より高度なテクニックをいくつか紹介します。
シリアライズ
PHP は永続オブジェクトをサポートしていません。オブジェクト指向言語では、永続オブジェクトとは、アプリケーションによって複数回呼び出された後でも状態と機能を維持するオブジェクトです。これは、オブジェクトをファイルまたはデータベースに保存する方法があることを意味します。 . そしてオブジェクトをリロードします。このメカニズムはシリアル化と呼ばれます。 PHP には、オブジェクトに対して呼び出すことができるシリアル化関数があり、オブジェクトを表す文字列を返します。次に、シリアル化関数は、メンバー関数の代わりにメンバー データを保存します。
PHP4 では、オブジェクトを文字列 $s にシリアル化し、そのオブジェクトを削除して、そのオブジェクトを $obj に逆シリアル化した場合でも、オブジェクトのメソッド関数を呼び出すことができます。ただし、(a) この機能は将来サポートされなくなる可能性があり、(b) シリアル化されたオブジェクトをディスクに保存してプログラムを終了するとファントムが発生するため、このアプローチはお勧めしません。シリアル化された文字列はメンバー関数を表さないため、このオブジェクトを逆シリアル化し、将来このスクリプトを再実行するときにオブジェクトのメソッドがまだ有効であることを期待することはできません。最後に、保存されたオブジェクトのメンバー変数をシリアル化することは、PHP では非常に便利です (連想配列と配列をディスクにシリアル化できます)。


http://www.bkjia.com/PHPjc/631809.html

tru​​ehttp://www.bkjia.com/PHPjc/631809.html技術記事ポリモーフィズム ポリモーフィズムは、実行時にオブジェクトがパラメータとして渡されたときに、どのメソッドを呼び出すかを決定するオブジェクトの機能として定義されます。たとえば、クラスはメソッド "draw" を定義し、そのクラスを継承します...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート