ホームページ  >  記事  >  php教程  >  大規模PHPプロジェクトの開発方法(3)

大規模PHPプロジェクトの開発方法(3)

WBOY
WBOYオリジナル
2016-06-21 09:02:15997ブラウズ

オーバーロード (オーバーライドとは異なり) は PHP ではサポートされていません。 OOP では、メソッドをオーバーロードして、同じ
を持つ 2 つ以上のメソッドを実装できます。ですが、引数の数または種類は異なります (言語によって異なります)。 PHP は緩やかに型指定された言語であるため、型のオーバーロードは機能しませんが、異なる数のパラメーターを使用したオーバーロードは機能しません。
(異なる数のパラメータを渡す)。 PHP

で実装するコツは次のとおりです:
-------- -------------------------------------------------- ----------------------- php クラス
Myclass { 関数
Myclass() { $name="Myclass".func_num_args
();
$this->$name(); >
//

$this->name() は一般的に間違っていますが、ここでは
$name
は、呼び出されるメソッドの名前です。
}
function Myclass1($x) {
code;
} function Myclass2($x,$y) { コード } } ?>---------------- - ------------------------------------------------- - ----------- このクラスの使用は、クラス内の追加処理を通じてユーザーに透過的です:





$obj1=new
Myclass
('1') //


Myclass1

$obj2=new
Myclass('1','2') //Myclass2 これは場合によっては非常に便利です。

多態性 ポリモーフィズムは、実行時に渡されたオブジェクト パラメーターに基づいて呼び出すオブジェクト メソッドを決定できます。たとえば、
figure のクラスがある場合、それは を定義しますdraw メソッド。そして派生した circle クラスと rectangle クラスで、派生クラスで
draw メソッドをカバーしており、パラメータ x を期待する関数も含めることができます。 $x->draw() を呼び出すことができます。ポリモーフィズムがある場合、どの draw
メソッドが呼び出される
は、オブジェクトのタイプによって異なります。この機能。

ポリモーフィズムは、PHP C++ のようなインタープリター型言語に存在します。コンパイラはそのようなコードを生成しますが、どのメソッドを呼び出す必要がありますか? オブジェクトの種類がわからない (まあ、それが重要ではありません) のは非常に簡単で自然です。したがって、PHP は確かにポリモーフィズムをサポートしています。
-------------------------------------- -- ------------------------------------------
php function niceDrawing($x) { //

これが
Board であると仮定します
クラスのメソッド
$x->draw()
}
$obj=new Circle( 3,187) ; $obj2=new Rectangle(4,5); $board->niceDrawing($
obj
);  //
将调用Circledraw方法
  
  $board->niceDrawing($obj2);
  //
将调用Rectangledraw方法
  
  ?>--------------------------------------------------------------------------------
  
  
PHP进行面向对象编程
  
  一些"纯化论者(purists)"可能会说PHP不是一个真正的面向对象的语言,这是事实。PHP 是一个混合型
  
语言,你可以使用OOP,也可以使用传统的过程化编程。然而,对于大型项目,你可能想/需要在PHP 中使用
  
纯的OOP去声明类,而且在你的项目只用对象和类。
  
  
  随着项目越来越大,使用OOP可能会有帮助,OOP代码很容易维护,容易理解和重用。这些就是软件工程
  
的基础。在基于web的项目中应用这些概念就成为将来网站成功的关键。
  
  



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。