ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向の概念と例_PHP チュートリアル
PHP オブジェクト指向の概念と例に関する簡単な記事。必要な友人は簡単に参照できます。
キーワードと特殊変数
新しい、クラス、拡張します。この3つは誰もが知っています。
::、範囲解決演算子 (Paamayim Nekudotayim とも呼ばれます)、またはより単純にはコロンのペアを使用して、静的メンバー、メソッド、および定数にアクセスできます。クラス内のメンバーやメソッドをオーバーライドするためにも使用できます。
親と自分。 parent は、extends 宣言内の派生クラスが指す基本クラスの名前を参照します。これを行うと、複数の場所で基本クラス名を使用することがなくなります。
$this 疑似変数。 $this は現在のインスタンスを指します。 $this は、必ずしもメソッドが属するオブジェクトであるとは限りません。クラス A 内のコードがクラス B の静的メソッドを呼び出すことがあります。参考例:php.net/manual/zh/ language.oop5.basic.php">http://www.php.net/manual/zh/ language.oop5.basic.php
静的なキーワード。クラス メンバーまたはメソッドを静的として宣言すると、クラスをインスタンス化せずに直接アクセスできます。ただし、静的メソッドを除き、オブジェクトを介して静的メンバーにアクセスすることはできません。静的メソッドでは、$this は使用されません。代わりに self:: を使用してください。
最後のキーワード。これはクラスと関数で使用できるため、クラスを継承したりメソッドをオーバーライドしたりすることはできません。
プロパティ
初期化できますが、初期化された値は定数である必要があります。 const キーワードは定数の前に使用します。定数の値は固定値である必要があり、変数、クラス属性、またはその他の操作 (関数呼び出しなど) の結果にすることはできません。
コンストラクターとデストラクター
これら 2 つの関数はいずれも、基本クラスの応答関数を秘密裏に呼び出すことはありません。これは、Java のコンストラクター メカニズムとは異なります。この効果を実現するには、実行を表示する必要があります。デストラクターでは例外をスローできません。
抽象クラス: 抽象として宣言されたクラス メソッドには具体的な実装を含めることはできず、抽象クラスはインスタンス化できません。最初に継承してから、そのサブクラスをインスタンス化する必要があります。さらに、サブクラスのアクセス制御は、抽象クラスのアクセス制御と同じか、より緩和する必要があります。抽象クラスには、少なくとも 1 つの抽象メソッドが含まれます。
インターフェース
インターフェイスを使用すると、メソッドの特定の内容を定義せずに、クラスが実装する必要があるメソッドを指定できます。
定義されたすべてのメソッドはパブリックで空である必要があります
定数は定義できますが、属性はありません
インターフェイスの実装はすべてのメソッドを実装する必要があり、複数のインターフェイスを実装できます (メソッドは同じ名前を持つことができないことに注意してください)。
インターフェースは他のインターフェースに継承(拡張)できます
コードは次のとおりです | コードをコピー |
クラス VipUser は AbstractUser を拡張します { クラス InnerUser extends AbstractUser { |
Product.php
コードは次のとおりです | コードをコピー |
include_once("User.php"); include_once("Product.php"); //その製品を買うのにいくらかかりましたか? クラス ProductSettle{ public static function FinalPrice(ユーザー $_user,製品 $_product,$number = 1){ $price = $_user->getDiscount() * $_product->getProductPrice() * $number; $price を返します; } } ?> |
以下の例が実装されています。自分で分析することもできます。
コードは次のとおりです | コードをコピー |
$数値 = 10;
$user = 新しい InnerUser("Tom"); |