[php][interface] phpのインターフェース小ネタ
今日インターフェースを実装するにあたり、実装する関数で引数にデフォルト値を設定できないかなーとか思いました。以下のような感じです。
< ?php interface MyInterface { public function foo($val); } class ImplementedClass implements MyInterface { public function foo($vals = "default") { if(!is_string($val)) { $val = (string)$val; } echo "$valn"; } } $i = new ImplementedClass(); $i->foo();
結果
Fatal error: Declaration of ImplementedClass::foo() must be compatible with that of MyInterface::foo() in C:tmptest9. php on line 7
やっぱりだめでした。残念。。。