[PHP-users 18152]Re: PHPで抽象メソッドを実装するには

K.Matsuda punibom0207 @ yahoo.co.jp
2003年 10月 1日 (水) 11:56:01 JST


松田です。

------- Original Message -------
From: naoki kishida <kishida @ fk.urban.ne.jp>
To: PHP-users ML <php-users @ php.gr.jp>
Sent: Wed, 01 Oct 2003 11:18:13 +0900
Subject: [PHP-users 18147]Re: PHPで抽象メソッドを実装するには

> きしだです

早々のレスありがとうございます。

> > 現在、Javaで言うところの抽象メソッド(abstractメソッド)を
> > PHPで使えないものかと試行錯誤しております。
> この場合の「抽象メソッド」にはどのような機能を求めているのでしょうか?
> 空の実装じゃだめなんですか?

例を申し上げますと、

// 入力された文字列を各条件でチェックするクラス
class SCheck {

  // チェック対象文字列
  var $str;

  // コンストラクタ
  function SCheck($arg) {
    $this->str = $arg;
  }

  // 共通メソッドはここに実装
  function null_check() {
    // 例えば空文字チェック等
  }

  // 抽象メソッド宣言
  // ここが書き方わからないので、仮にJava風に・・・
  abstract boolean check( ); 
}

// SCheckクラスを継承したSCheckEmailクラス
class SCheckEmail extends SCheck {
  // checkメソッド実装
  function check() {
    // チェック対象文字列がメールアドレスの正規表現に一致すればtrueを返す
  }
}

// SCheckクラスを継承したSCheckTel クラス
class SCheckTel extends SCheckTel {
  // checkメソッド実装
  function check() {
    // チェック対象文字列が電話番号の正規表現に一致すればtrueを返す
  }
}

・・・今思いついたことを殴り書きしてしまったので、
矛盾やミスもあると思いますが、例えば↑のような感じですね。

SCheckクラスを継承した各クラスで、checkメソッドの実装を
忘れてしまった場合等にエラーが出せたりするといいのですが・・・。

************************************
K.Matsuda
mailto : punibom0207 @ yahoo.co.jp
************************************

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!
http://bb.yahoo.co.jp/



PHP-users メーリングリストの案内