2017-11-07 6 views
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クラスに移動しようとしました。まだ喜びはありません。 ご協力いただきありがとうございます。

+2

これは '$ this-> renderer-> renderConfirm'のようにする必要があります。あなたは忘れる '>' –

+0

Ima橋のジャンプに行く...私のリンターは盗んだ必要があります... ありがとう! –

答えて

0

ハカン・ソーンズ氏が指摘したように、 私は盲目であり、逃したばかりです>

関連する問題