一、场景二、比较1、对比 return 和 echo 的区别1)、原文地址2)、区别2、php接口返回数据 用echo 还是return?1)、原文地址2)、内容3、php的echo 和 return的区别1)、原文地址2)、内容三、相关博文
一、场景
PHP编写接口代码public function test() {/*** TODO...*/$result = ['data' => '返回的数据','message' => '消息提示','code' => 1];$result = json_encode($result, JSON_UNESCAPED_UNICODE);//方式1:return返回//return $result;//方式2:直接die返回//die($result);//方式3:先输出,再die (相当于方式2)echo $result;die();//建议使用方式2,代码清晰不臃肿}
二、比较
1、对比 return 和 echo 的区别
1)、原文地址
php中echo和return的区别2)、区别
echo是其实也相当于对比 return 和 die(‘string’) 的区别
输出字符串到浏览器
,return是终止后面代码的执行并返回一个值
PHP用return
,浏览器和javascript用echo
2、php接口返回数据 用echo 还是return?
1)、原文地址
php接口返回数据 用echo 还是return?2)、内容
今天在ci框架中用 return 返回 josn_encode数据 给前台ajax ,前台获取始终为空。(原生php return也为空)改为echo
后就可以获取到
。本人之前用tp
的时候一直用return就能获取到
。最终看了别人的一些ci代码 这种情况也是用的echoreturn 作为函数返回值或结束语句,是返回的数据的指针,也就是数据存放的地址,而接口需要返回的是真实的数据,
因为前后端使用的是不同的内存系统,所以无法根据地址找到相应的数据,而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的源码!
3、php的echo 和 return的区别
1)、原文地址
php的echo 和 return的区别2)、内容
项目中碰到的问题,本来是想在控制器直接return xml的(xml的(xml的(xml是一段xml格式的代码),但是测试却发现什么都没有输出。换成echo $xml;就成功了,所以特地百度了一下
1、从关键词意思上看: echo 是输出字符串到浏览器return主要是用于函数,返回一个值 2、echo 主要用于:php对浏览器的输出; return主要用于处理函数的返回值 3、在大多数情况下,echo 和return的结果都是一样的。但如果出现函数嵌套或者函数比较多的情况, echo会无效或者发生错误。所以处理函数的返回或者输出还是用return好。 4、比如我项目中碰到的这个问题,因为要在浏览器输出内容,所以用echo比较合适。如果是需要一个可以被其它函数调用的返回值的话,建议还是用return.