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实现首页链接查询 友情链接检查的代码
Jan 05 PHP
由php的call_user_func传reference引发的思考
Jul 23 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
一个简单且很好用的php分页类
Oct 26 PHP
php中Snoopy类用法实例
Jun 19 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
php的扩展写法总结
2019/05/14 PHP
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
wxpython 学习笔记 第一天
2009/03/16 Python
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
Django进阶之CSRF的解决
2018/08/01 Python
Puppeteer使用示例详解
2019/06/20 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
Django数据库迁移常见使用方法
2020/11/12 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
介绍下static、final、abstract区别
2015/01/30 面试题
高三学习决心书
2014/03/11 职场文书
房产买卖委托公证书
2014/04/04 职场文书
美术社团活动总结
2014/06/27 职场文书
争先创优演讲稿
2014/09/15 职场文书
学习保证书怎么写
2015/02/26 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
python中的random模块和相关函数详解
2022/04/22 Python