php接口返回数据 用echo 还是return?

今天在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的源码!

参考:https://www.seoxiehui.cn/article-74944-1.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部