[PHP-users 11519] クラスのコンストラクタの返値について

SHIMOOKA Hideyuki php-users@php.gr.jp
Fri, 15 Nov 2002 15:14:15 +0900


下岡@もっと部分的に反応です。

---- KUROSAWA Akiraさん曰く...

>ただ、実装しなければならないはずのメソッドを実装せずに
>実行して、なお且つ、このメソッドに制御が移ってしまった時に
>警告を発することは可能です。
(snip)
>Class Hoge {
>    function foo() {
>        // 継承先のクラスで必ず実装してください。
>        echo "ロジックが実装されていません。";
>    }
>}

個人的には、interfaceで定義したメソッドをサブクラスで必ず実装
させるために、

class Abstract {
    function set($name) { die("function $name is not implemented"); }
}

なクラスを用意しておき、interface(abstractも含む)側で

class foo {
    function method1() { Abstract::set("method1"); }
    function method2() { Abstract::set("method2"); }
               :
}

としてます。

実装しないと処理が停止してしまうので、否が応でも実装せざるを
得なくなります:-)

-- 
H.Shimooka/shimooka@axissoft.co.jp