コードサンプルは、私が取り組んでいることの簡単な例です。PHPには2つのクラスがあります。
class Wrap {
public function wrapA($arg){
return 'A'.$arg.'A';
}
public function wrapB($arg){
return 'B'.$arg.'B';
}
}
class Child extends Wrap {
public $OUT;
public function wrapA($arg){
$this->OUT .= parent::wrapA($arg);
}
public function wrapB($arg){
$this->OUT .= parent::wrapB($arg);
}
public function __destruct(){
echo $this->OUT;
}
}
$X = new Child();
$X->wrapA(
$X->wrapB('CC')
);
ここでの出力は「BCCBAA」です。しかし、私が達成しようとしているのは「ABCCBA」です。「Wrap」クラスはこの形式でなければなりません。
…そして、次のメソッド呼び出しがある場合:
$X->wrapB( $X->wrapA('1') );
$X->wrapA( $X->wrapB('aa') .$X->wrapA('bbb') .$X->wrapB( $X->wrapA('cccc') ) );
… 次の出力が必要です: BA1ABABaaBAbbbABAcccABA
他の方法はありますか?
また、Wrap-Class を (Child なしで) 単独で動作させたいと考えています。これが、メソッドに戻り値がある理由です。
しかし、Child-Class では戻り値を変数に書きたいと思います。
THXお早めに!