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'); } ฉันเพิ่งเรียนรู้ว่าบางเหตุการณ์ผ่านวัตถุการขนส่งซึ่งสามารถเปลี่ยนสตริงได้ (ขอบคุณอเล็กซ์ ) แต่เหตุการณ์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 ));