PHP対象プログラム設計に向けたインターフェースの継承定義と使い方の詳細


本論文の実例は、PHPが対象プログラムに向けて設計したインターフェースの継承定義と使用法について述べる。皆さんに参考にしてあげます。具体的には以下の通りです。
PHP 5では、インターフェースは別のインターフェースから継承できます。このようにコードの再使用がより効果的です。なお、継承キーextendsは、インターフェースとインターフェースの間だけ使用される。クラス実現インターフェースは、キーワードimplementsを使用して、その抽象的な方法を実装しなければならない。
以下のこの例はインターフェースUserを定義し、Userには2つの抽象的な方法getNameとsetNameがある。また、インターフェースVipUserを定義し、Userインターフェースから継承し、ディスカウント関連の方法get Disccountを追加しました。
最後にクラスVipを定義し,VipUserインターフェースを実現した。その中の3つの方法を実現しました。

<?php
interface User {
  public function getName();
  public function setName($_name);
}
interface VipUser extends User {
  public function getDiscount(); //            .
}
class Vip implements VipUser {
  private $name;
  private $discount = 0.8;//       
  public function getName(){ //  getName  
    return $this->name;
  }
  public function setName($_name){//  setName  
    $this->name = $_name;
  }
  public function getDiscount(){//      .
    return $this->discount;
  }
}
?>

インターフェースは多相続を実現することができます。これはインターフェースの特殊なところです。下のコードと使い方に注意してください。

<?php
interface User {
  public function getName();
  public function setName($_name);
}
interface Administrator {
  public function setNews($_news);
}
//        .
interface NewsAdministrator extends User,Administrator{
}
class NewsAdmin implements NewsAdministrator { //    
  public function getName(){
    //.........
  }
  public function setName($_name){
    //.........
  }
  public function setNews($_news){
    //.........
  }
}
?>

抽象類実現インターフェースは、その中の抽象的な方法を実現しないで、抽象的な方法の実現を具体的に例証化される種類に渡して処理します。

<?php
interface User {
  public function getName();
  public function setName($_name);
}
//AbstractNormalUser      User        ,
abstract class AbstractNormalUser{
  protected $name;
  public function getName(){
    return $this->name;
  }
}
//              .
class NormalUser extends AbstractNormalUser {
  public function setName($_name){
    $this->name = $_name;
  }
}
$normalUser = new NormalUser();
$normalUser->setName("tom");
echo "name is ".$normalUser->getName();
?>

実行結果:
name is tom
PHPについてもっと興味のある読者は、本駅のテーマを見てもいいです。「php対象プログラム設計入門教程」、「PHP配列(Aray)操作テクニック大全」、「PHP基本文法入門教程」、「PHP演算と演算子の使い方のまとめ」、「php文字列(string)使い方のまとめ」、「php+mysqlデータベース操作入門教程」および「phpよくあるデータベースの操作技巧のまとめ
本論文で述べたように、皆さんのPHPプログラムの設計に役に立ちますように。