PHP写API输出的时用echo的原因详解


Posted in PHP onApril 28, 2019

写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写API输出的时用echo的原因的全部内容,感谢大家的阅读和对三水点靠木的支持。

PHP 相关文章推荐
php 获取select下拉列表框的值
May 08 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
php开发微信支付获取用户地址
Oct 04 PHP
一个简单的php路由类
May 29 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 #PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 #PHP
PHP操作路由器实现方法示例
Apr 27 #PHP
PHP切割汉字的常用方法实例总结
Apr 27 #PHP
YII框架常用技巧总结
Apr 27 #PHP
YII框架行为behaviors用法示例
Apr 26 #PHP
YII框架模块化处理操作示例
Apr 26 #PHP
You might like
Discuz 模板引擎的封装类代码
2008/07/18 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
PHP Cookie学习笔记
2016/08/23 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
JQuery 文本框使用小结
2010/05/22 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
如何运行Python程序的方法
2013/04/21 Python
python的文件操作方法汇总
2017/11/10 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
python django中8000端口被占用的解决
2019/12/17 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
基于Python绘制个人足迹地图
2020/06/01 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
求职简历自荐信范文
2013/10/21 职场文书
高三毕业生自我鉴定
2013/12/20 职场文书
大学生求职自我评价
2014/01/16 职场文书
护士辞职信范文
2014/01/19 职场文书
应聘面试自我评价
2014/01/24 职场文书
蓝颜请假条
2014/04/11 职场文书
还款承诺书范文
2014/05/20 职场文书
农村党员对照检查材料
2014/09/24 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
队列队形口号
2015/12/25 职场文书