写php API写的很少,近来才最先接口的写法,在框架内里一向用return,然则在api中retrun就失效了,为何呢?
网友给出的答案:
1.return 平常用于函数或要领的返回。
echo 才是输出(也就是显现)
假如你不输出,api有何作用。
2.return只能在php内部运用
对外,你要给他人剖析,你就明白成输出,用echo
3.当然是echo了,假如是json最好加上header标识
<?php $ret = array( 'name' => 'fdipzone' ); header('content-type:application/json;charset=utf8'); echo json_encode($ret);?>
为何给app写接口时,要用echo 返回 json数据?
1.给 app写接口时,要用 echo json_encode() 来返回数据,然则PHP自身挪用却用 return json_encode();
rerurn是言语中函数或许要领所代表的值,跟变量一样,贮存在内存中。return是给其他代码块一个指针或许援用。
而服务器与app(客户端)交互时,他们没法读取同一个内存体系,只能经由过程文本如许的体式格局来交流信息。
所以要echo一段文本(json)给客户端。
php习用的输出流体式格局就是echo,假如你钟情于return输出,可以自创一门言语来完成。
2.我是这么明白的,不管什么顺序,你总要输出吧,那怎样输出呢?PHP剧本,也就是用到<?php ?> 标记起来的这些,都要靠PHP来剖析的,那你要输出一定要用到echo,die,exit,print_r,
用return是输出不了的,return就是返回的意义,我(主顺序)调要领,要领给我返回效果。
3.框架自身会对你的函数返回的字符串举行输出,要输出终究都是echo。。只是框架基础都是封装了response对象;echo是输出 只要输出的内容http要求的时刻才猎取到
而php内部挪用没有http要求
return 作为函数返回值或完毕语句,是返回的数据的指针,也就是数据寄存的地点,而接口须要返回的是实在的数据,
由于前后端运用的是差别的内存体系,所以没法依据地点找到响应的数据,而echo print sprinf等这些可以在浏览器中打印数据的函数都是基于http协定传输的真是数据,所以在前端是可以猎取和推断的.
须要注重的是,在tp框架中,return关键字的确是可以给返回数据的,也就是可以作为接口返回数据关键字的,然则用原生的php是不可的,这应该是tp框架内部做过处理了!
相干教程:PHP视频教程
以上就是PHP写API输出的时用echo的缘由的细致内容,更多请关注ki4网别的相干文章!