php接口返回数据 用echo 还是return?

作者:PHPYuan 时间:2018-06-10 23:40:39

框架用多了,也是有坏处的,之前一直用框架写接口,返回数据时都是用的return 关键字,时间长了,就会感觉这样是理所当然,因为函数的返回值 就是用return 关键字返回.其实这样是不对的.

今天用原生的写了一个简单的登录验证页面,问题就来了,一直用的return关键字,死活都没有返回值,为此我还特意翻看了一下以前项目的代码,确实是用return关键字写的,是没问题的,因为那个项目已经上线了,至今一直都在使用,并且还在更新迭代中.

上面就是前段的js代码和后端的php代码,这段看似很简单代码,确存在着一个大的问题,那就是数据返回时,用的是return关键字,经过多次测试,上述php代码是没有返回给前端值的,也就是每次的结果都是验证失败.

刚开始一直在找问题,因为这种写法,已经被验证过很多次是没有问题的,所以就一直没考虑这方面,但是代码几句,于是索性就让php直接返回了一句 return 1,但是结果仍然是验证失败,

走到这里,才开始怀疑是return 关键词,没有给前台返回数据造成的问题,于是试着用 echo 关键字输出数据,奇迹出现了,前端出现了验证成功,

问题虽然解决了,但是还是没有搞懂其中的原理,于是开始翻阅资料,最终还是找到了一个个人感觉比较满意的答案:

return 作为函数返回值或结束语句,是返回的数据的指针,也就是数据存放的地址,而接口需要返回的是真实的数据,

因为前后端使用的是不同的内存系统,所以无法根据地址找到相应的数据,而echo print sprinf等这些能够在浏览器中打印数据的函数都是基于http协议传输的真是数据,所以在前端是可以获取和判断的.

需要注意的是,在tp框架中,return关键字的确是可以给返回数据的,也就是可以作为接口返回数据关键字的,但是用原生的php是不行的,这应该是tp框架内部做过处理了吧!这里就不在深究了,有兴趣的朋友,可以去看下tp的源码!!

分享到:

>> 下一篇:Phalcon:用C语言写成的PHP5框架 (2018-06-10 23:40)

php验证返回值,php接口返回数据 用echo 还是return?相关推荐

  1. 第八天学习Java的笔记(方法有参无参,有返回值和无返回值)

    48天 方法 对比有参数和无参数 package Demo03;/* * 有参数:小括号当中有内容,当一个方法需要一些数据条件才能完成任务的时候,就是有参数 * 例如两个数字相加,必须知道两个数字各是 ...

  2. java 定时器返回值_javascript 函数返回值(return)、定时器(setTimeout、setInterval)...

    一.函数的返回值:return 1.函数名+括号=return后面的值 function fn1(){ return 100; } alert(fn1()); // 100 fn1()=return后 ...

  3. 【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )

    文章目录 一.C 项目开发代码规范 一.C 项目开发代码规范 上一篇博客 [C 语言]字符串模型 ( 键值对模型 ) 中 , 完成了字符串的 键值对 查找功能 , 代码不太规范 ; C 项目开发代码规 ...

  4. Java手写线程池(不带返回值、带返回值)

    文章目录 不带返回值 带返回值 不带返回值 public class MyThreadPool {private static final int DEFAULT_THREAD_NUM = 10;pr ...

  5. Python教程:函数多个返回值与丢弃返回值

    1.函数多个返回值 python的函数支持返回多个值.返回多个值时,默认以tuple的方式返回. 例如,下面两个函数的定义是完全等价的. def f():return 1,2def f():retur ...

  6. 5获取按钮返回值消息_大数据从入门到深入:JavaEE 之 项目实战 项目基础编码阶段(5)...

    2.5 学生信息删除 2.5.1 产品经理阶段 操作要求 : 点击页面的删除按钮,弹出删除提示框,确定后删除学生信息和学生的考试成绩; 2.5.2 项目经理阶段 业务分析 : 删除学生信息的时候还要删 ...

  7. java 接口 返回值_java api返回值的标准化详解

    api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\ ...

  8. python 子线程返回值_python-从线程返回值

    python-从线程返回值 我如何获得一个线程以将元组或我选择的任何值返回给Python中的父级? 12个解决方案 59 votes 我建议您在启动线程之前实例化Queue.Queue,并将其作为线程 ...

  9. postman提取返回值_postman提取返回值

    Postman是做接口测试的,但是很多接口并不是直接就能测,有的需要一些预处理.比如说身份认证,需要传递一个token.如果做网页测试,一般打开登陆界面的时候就会生成一个token,如果返回值是jso ...

最新文章

  1. 怎么复制链接伟html,index.html
  2. oracle分区交换速度,oracle交换分区对数据的加载提速案例
  3. Java并发编程原理与实战六:主线程等待子线程解决方案
  4. python工程师薪资坑吗-Python中反人类直觉的特性,你踩过坑吗?
  5. 统计一下你写过多少代码
  6. 大神对飞控精准高度估计算法解读
  7. python生成uuid_咸鱼高赞回答:有什么相见恨晚的Python技巧,附赠python最新教程...
  8. 程旭元系统漫画第三期:加班 !
  9. Java集合 -- HashSet 和 HashMap
  10. Mybatis+Oracle批处理
  11. 爬虫404如何跳过_金秀贤、全智贤主演的韩剧来自星星的你你如何评价?
  12. “不会Linux,怎么当程序员?”骨灰级程序员:你的代码正在毁掉你!
  13. luogu p1799 数列_NOI导刊2010提高(06)
  14. Linux怎么删除tomcat日志,Linux下定时切割Tomcat日志并删除指定天数前的日志记录...
  15. c#winform panel空间拖动窗体 最小化 关闭 按钮 右下角弹窗
  16. kali linux暴力破解攻击
  17. 利用R代码从UCSC XENA下载mRNA, lncRNA, miRNA表达数据并匹配临床信息
  18. --hot 和 --inline的区别
  19. 苹果xr十大隐藏功能_今天才发现!苹果手机闹钟除了提醒起床,还有3个隐藏功能...
  20. 1--MySQL基础知识内容

热门文章

  1. 手机活动促销宣传海报,如何设计更有吸引力?
  2. Windows监听进程是否退出C++
  3. Ubuntu16.04下 shell脚本中C语言形式的for循环用法
  4. AutoFDO自动反馈式优化
  5. ramfs, rootfs and initramfs
  6. DPDK 跟踪库tracepoint源码实例分析
  7. NGINX内部:我们如何设计性能和规模
  8. DPDK examples ethtool-app完全注释
  9. ncurses输出函数:字符+字符串的输出
  10. Java的native方法返回数组return Array(C语言)