0

私はOOPの実装に取り​​組んでおり、次のものがあります。

abstract class Parent{
   public abstract function select($order="desc");

}


class Child extends Parent{
   public function select($order) // here is the problem error
   {
      // selection code 
   }

}

これにより、宣言が親メソッドと互換性がある必要があることを示すエラーがスローされます。

デフォルトのパラメータ設定を引き継がなかったことを除いて、適切なパラメータで実装しました。

いつかデフォルト値を変更したい場合、100クラスの親メソッドの同じプロトタイプを過去にコピーしたくありません。これどうやってするの?

ジェネリックはphpに存在しますか??

4

4 に答える 4

3

パブリック抽象関数 select($order="desc"); と public function select($order) 一致しません。抽象関数からデフォルト値を削除します。

于 2013-10-08T00:14:35.030 に答える
0

たとえば、私の小さなライブラリValueResolverを使用できます。

$myVar = ValueResolver::resolve($var, $default);

名前空間を使用することを忘れないでくださいuse LapaLabs\ValueResolver\Resolver\ValueResolver;

たとえば、変数の値が である必要がある場合など、型キャストする機能もあるintegerので、これを使用します。

$id = ValueResolver::toInteger('6 apples', 1); // returns 6
$id = ValueResolver::toInteger('There are no apples', 1); // returns 1 (used default value)

その他の例については、ドキュメントを確認してください

于 2015-07-09T10:24:34.927 に答える