找了一圈,看到你們講的都很差玩,不直白。我來引用Stackoverflow上某人作的一 個比喻:php
你是苦逼的開發,桌上的電話響了,接聽後,那人說要找一位銷售講電話,你說:銷售的直線是020-12345678,而後就給掛掉了。這就是redirect。另外一種狀況,你說,你等等啊我給你轉一下,而後將電話轉給一位銷售部門。這就是forward。網站
$this->_redirect($url); $this->_redirect('/Read/novel/id/3'); $this->_redirect('http://www.oschina.net'); //這個redirect轉了哪些參數,別人是否是一目瞭然?
要是你用forward,能夠在Module、Controller和Action之間跳,就是不能跳到別人的網站。this
$this->_forward('action','controller','module',$param); //轉到www.ursite.com/Controller/action/$param $this->_forward('novel','Read','default',array('id'=> $id,'mode'=> $mode)); //轉到www.ursite.com/Read/novel/id/3/mode/fullverion,這個3和fullversion是變量 $this->_forward('poem','null','null',array('id'=> $id,'mode'=> $mode)); //這個forward,跳到別的網站去,若是在同一個Controller下另外一個novel動做,能夠節省流量,節省計算資源
另外,forward以後,顯示在地址欄裏的地址不變。url