为什么给app写接口时,要用echo 返回 json数据?

给 app写接口时,要用 echo json_encode() 来返回数据,
但是PHP自身调用却用 return json_encode();

阅读 8.7k
7 个回答

rerurn是语言中函数或者方法所代表的值,跟变量一样,储存在内存中。return是给其他代码块一个指针或者引用。
而服务器与app(客户端)交互时,他们无法读取同一个内存系统,只能通过文本这样的方式来交换信息。
所以要echo一段文本(json)给客户端。
php惯用的输出流方式就是echo,如果你钟情于return输出,可以自创一门语言来实现。
蛤?

这里就充分说明了框架害死了新手。。

打个比方,俄罗斯的老毛子与中国人遇上了, 他们return相当于是用自己国家的语言说话, 那样怎么办呢,于是他们用英语(json)就可以方便共同交流

我是这么理解的,不管什么程序,你总要输出吧,那怎么输出呢?PHP脚本,也就是用到<?php ?> 标记起来的这些,都要靠PHP来解析的,那你要输出肯定要用到echo,die,exit,print_r,用return是输出不了的,return就是返回的意思,我(主程序)调方法,方法给我返回结果。

要输出最终都是echo。。只是框架基本都是封装了response对象

框架本身会对你的函数返回的字符串进行输出

echo是输出 只有输出的内容http请求的时候才能获取到
而php内部调用没有http请求

推荐问题