php介面返回資料 用echo 還是return

2021-10-01 02:55:40 字數 751 閱讀 7349

今天在ci框架中用 return 返回 josn_encode資料 給前台ajax ,前台獲取始終為空。(原生php return也為空)

改為echo後就可以獲取到。本人之前用tp的時候一直用return就能獲取到。

最終看了別人的一些ci** 這種情況也是用的echo 

return 作為函式返回值或結束語句,是返回的資料的指標,也就是資料存放的位址,而介面需要返回的是真實的資料,

因為前後端使用的是不同的記憶體系統,所以無法根據位址找到相應的資料,而echo print_r var_dump等這些能夠在瀏覽器中列印資料的函式都是基於http協議傳輸的真是資料,所以在前端是可以獲取和判斷的.

ajax獲取返回值是使用http請求。return不會產生輸出(只在server端進行)而echo可以(從server -> brower,http協議)。ajax請求的url其實就是乙個頁面,它可以在瀏覽器顯示,而 php中以return返回資料只是在伺服器端去返回這些資料。

綜上所述,如果ajax 位址是乙個php return,將不會獲取到正確資料。 

需要注意的是,在tp框架中,return關鍵字的確是可以給返回資料的,也就是可以作為介面返回資料關鍵字的,但是用原生的php是不行的,這應該是tp框架內部做過處理了吧!可以去看下tp的原始碼!

參考:

koa 介面返回資料 koa 介面非同步返回資料問題

用koajs實現了乙個介面,介面裡面讀取了乙個文字檔案,但是返回資料的時候不能等待檔案處理完成後返回資料,而是在最外層才能返回資料。求解。已解決,附上 use strict const readline require readline const fs require fs const path ...

php寫app介面並返回json資料

第一步 conn.php檔案,用於連線資料庫並定義介面格式,如下 header charset utf 8 servername localhost username root password root dbname test conn mysql connect servername,usern...

PHP返回介面資料使用return還是echo

問題 yii2框架,前後端分離的,前端呼叫後台介面,後台使用echo返回結果,前端報錯。解決 使用return返回資料,或者echo之後不加die exit等這類結束語句。前端可以接收到傳遞的資料,不報錯。return 111 正常 網上找到的兩句有關return和echo的解釋 return 作為...