2017-06-27 45 views
0

今天我們遇到了一個令人難以置信的問題。 代碼是用PHP 5.6在Phalcon框架中編寫的。我的同事無法運行我的代碼,因爲當我從控制器操作方法(用於Ajax請求)編寫return時,他得到的是整個視圖,而不是我試圖返回的json對象。 但是,當我們使用die()exit()(它不返回給調用者,因爲return確實如此,但在操作方法中並不重要),所有內容都按預期返回。 另外我運行的是Debian 8.8,他運行的是Ubuntu。我們兩位都在使用NetBeans 8.2PHP返回在Ubuntu上不起作用

+0

看來你的代碼有問題。但是,除非我們有[可以重現問題的代碼或信息](// stackoverflow.com/help/mcve),否則我們無能爲力。否則,我們只是盲目猜測。 – FrankerZ

+0

代碼在我的機器上完美工作。例如'public function testAction(){return json_encode('some stuff'); }'不會在我的同事機器上返回Ajax請求的對象。它會返回整個視圖。 –

+1

netbeans是您的IDE,並且在您實際運行代碼時無關緊要。 –

回答

1

當您撥打die()exit()時,一切都停止了。

從PHP手冊:

(PHP 4, PHP 5, PHP 7) 
exit — Output a message and terminate the current script 

這包括框架。這聽起來像你可能做了類似回聲JSON,並期望它只輸出JSON。我沒有使用Phalcon,但許多框架在呈現頁面之前都有自己的一系列函數和腳本。因此,通過調用return,框架的腳本開始工作,構建一個完整的視圖並輸出到瀏覽器,您的JSON可能已被埋在某處。

另一方面,通過調用exit(),所有東西都停在那裏,框架中沒有更多渲染函數會運行。

學習你的框架並適應,希望有所幫助。

+0

謝謝您的回答。框架不是問題,但兼容性問題。我不完全確定這個框架是否會因爲它適用於我的機器而受到指責。 –