0
renderConfirm()メソッドと追加しようとする新しいメソッドで未定義関数エラーが発生しました。しかし、私が名前を変更しても、renderData()メソッドはうまく動作します。 コード:PHP致命的なエラー:1つのメソッド以外のすべてで未定義の関数を呼び出す
interface FieldRenderer {
public function renderData($data, $element);
public function renderConfirm($data, $element);
}
abstract class StdConfirmRenderer implements FieldRenderer {
abstract public function renderData($data, $element);
public function renderConfirm($data, $element) {
$text = new DOMText($data);
$element->parentNode->insertBefore($text, $element);
$element->parentNode->removeChild($element);
}
}
class TxtFieldRenderer extends StdConfirmRenderer {
public function renderData($data, $element) {
$element->setAttribute("value", $data);
}
}
私はそうのような別のクラスからそれを呼び出しています:
switch ($mode) {
case 'data':
$this->renderer->renderData($this->data->value, $this->data->element);
break;
case 'confirm':
$this->renderer-renderConfirm($this->data->value, $this->data->element);
}
たrenderData()が正常に動作述べたように。 renderConfirm()と私が今追加する他のメソッドはそうではありません。
私はすべての継承を削除しようとしました。継承された関数を直接TxtFieldRendererクラスに移動しようとしました。まだ喜びはありません。 ご協力いただきありがとうございます。
これは '$ this-> renderer-> renderConfirm'のようにする必要があります。あなたは忘れる '>' –
Ima橋のジャンプに行く...私のリンターは盗んだ必要があります... ありがとう! –