extends

他の既存のクラスに似た変数や関数を有するクラスが必要になることがよ くあります。実際、全てのプロジェクトで使用可能な一般的なクラスを定 義し、このクラスを特定のプロジェクトの各々の要求に合わせて調整する というのは、良いやり方です。これを簡単に行うにために、他のクラスを 拡張してクラス作成することが可能です。拡張あるいは派生クラスは、基 底クラスの全ての変数と関数を有します。(これは、実際には誰も亡くなっ ていませんが、'継承'と呼ばれます) この派生クラスには、派生クラスの 定義で追加したものも含まれます。クラスから定義を取り除く、つまり、 既存の関数や変数を未定義とすることはできません。派生クラスは、常に 単一の基底クラスに依存します。つまり、多重継承は、サポートされてい ません。クラスは、キーワード'extends'を用いて拡張されます。

class Named_Cart extends Cart
{
    var $owner;
  
    function set_owner ($name)
    {
        $this->owner = $name;
    }
}

この例は、Cart の全ての変数及び関数に加えて変数 $owner と 関数 set_owner() を保持するクラス Named_Cart を定義しています。 この定義により、名前付きの籠を通常の手段で作成し、籠の保有者を 設定したり得たりすることができます。 名前付きの籠で元の籠クラスの関数を使うことも可能です。

$ncart = new Named_Cart;    // 名前付きの籠を作成
$ncart->set_owner("kris");  // 籠の所有者の名前を設定
print $ncart->owner;        // 籠の所有者を出力
$ncart->add_item("10", 1);  // (籠から継承された機能)