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 ));