#この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューターphp でのコード重複が多すぎる問題の解決策: まず、BookProduct と Cdproduct という 2 つの新しいクラスを作成し、次にクラス継承を使用してコード重複の問題を解決します。
php はクラス継承を使用して、コードの重複を解決する 質問
この記事では、コードの重複の問題を解決するための PHP でのクラス継承の使用法を主に紹介します。継承の原理と使用テクニックを例とともに分析しています。非常に実用的です。必要な友人は参照してください。この記事の例では、コードの重複の問題を解決するために PHP でクラス継承を使用する方法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです: 継承とは、単にクラスの 1 つ以上のサブクラスを作成することです。サブクラスを作成するには、クラス宣言で extends キーワードを使用する必要があります。新しいクラス名が最初に来て、extends が続きます。親クラス名は最後に来ます。 次の例では、BookProduct と Cdproduct という 2 つの新しいクラスを作成します。どちらも ShopProduct クラスを継承します。 コードは次のとおりです:
<?php header('Content-type:text/html;charset=utf-8'); // 从这篇开始,类名首字母一律大写,规范写法 class ShopProduct{ // 声明类 public $numPages; // 声明属性 public $playLenth; public $title; public $producerMainName; public $producerFirstName; public $price; function __construct($title,$firstName,$mainName,$price,$numPages=0,$playLenth=0){ $this -> title = $title; // 给属性 title 赋传进来的值 $this -> producerFirstName= $firstName; $this -> producerMainName = $mainName; $this -> price= $price; $this -> numPages= $numPages; $this -> playLenth= $playLenth; } function getProducer(){ // 声明方法 return "{$this -> producerFirstName }"."{$this -> producerMainName}"; } function getSummaryLine(){ $base = "{$this->title}( {$this->producerMainName},"; $base .= "{$this->producerFirstName} )"; return $base; } } class CdProduct extends ShopProduct { function getPlayLength(){ return $this -> playLength; } function getSummaryLine(){ $base = "{$this->title}( {$this->producerMainName},"; $base .= "{$this->producerFirstName} )"; $base .= ":playing time - {$this->playLength} )"; return $base; } } class BookProduct extends ShopProduct { function getNumberOfPages(){ return $this -> numPages; } function getSummaryLine(){ $base = "{$this->title}( {$this->producerMainName},"; $base .= "{$this->producerFirstName} )"; $base .= ":page cont - {$this->numPages} )"; return $base; } } ?>
PHP ビデオ チュートリアル]
サブクラスはコンストラクターを定義します。したがって、BookProduct クラスと Cdproduct クラスがインスタンス化されると、親クラス ShopProduct のコンストラクターが自動的に呼び出されます。 サブクラスは、デフォルトで親クラスのすべてのパブリックおよびプロテクト メソッドとプロパティを継承します (ただし、プライベート メソッドとプロパティは継承しません。これら 3 つのキーワードの機能については後で説明します)。つまり、getProducer() が ShopProduct クラスで定義されている場合でも、Cdproduct クラスからインスタンス化されたオブジェクトで getProducer() メソッドを呼び出すことができます。 次のコードを上記に追加します。 コードは次のとおりです。$product2 = new CdProduct("PHP面向对象","郭","碗瓢盆",7,null,"7小时"); print "美好生活:{$product2 -> getProducer()}<br>"; // 结果是:美好生活:郭碗瓢盆
以上がPHPコードの繰り返しが多すぎる場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。