3
イベントによって渡される文字列を変更するにはどうすればよいですか?
私のオブザーバー関数では、そのようなイベントによって渡される変数を取得します。 public function observerFunc(Varien_Event_Observer $observer) { $sth = $observer->getEvent()->getSth(); } sthがオブジェクトの場合、そのメソッドを呼び出すことで変更できます。しかしsth、それが単純な文字列である場合、どのように変更できますか?私は成功せずに以下を試しました: public function observerFunc(Varien_Event_Observer $observer) { $sth = $observer->getEvent()->getSth(); $observer->getEvent()->setSth('test'); $observer->setSth('test'); } 一部のイベントは文字列を変更できるトランスポートオブジェクトも渡すことを学びました(ありがとうAlex)が、イベントpage_block_html_topmenu_gethtml_afterはそうではありません。それで、なにかお手伝いできますか? 問題のイベントは次のようにディスパッチされ、$ htmlを変更します。 $html = $this->_getHtml($this->_menu, $childrenWrapClass); Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array( 'menu' => $this->_menu, 'html' => $html ));