本日用原生的写了一个大略的登录验证页面,问题就来了,一贯用的return关键字,去世活都没有返回值,为此我还特意翻看了一下以前项目的代码,确实是用return关键字写的,是没问题的,由于那个项目已经上线了,至今一贯都在利用,并且还在更新迭代中.
上面便是前段的js代码和后真个php代码,这段看似很大略代码,确存在着一个大的问题,那便是数据返回时,用的是return关键字,经由多次测试,上述php代码是没有返回给前端值的,也便是每次的结果都是验证失落败.
刚开始一贯在找问题,由于这种写法,已经被验证过很多次是没有问题的,以是就一贯没考虑这方面,但是代码几句,于是索性就让php直接返回了一句 return 1,但是结果仍旧是验证失落败,
走到这里,才开始疑惑是return 关键词,没有给前台返回数据造成的问题,于是试着用 echo 关键字输出数据,奇迹涌现了,前端涌现了验证成功,
问题虽然办理了,但是还是没有搞懂个中的事理,于是开始翻阅资料,终极还是找到了一个个人觉得比较满意的答案:
return 作为函数返回值或结束语句,是返回的数据的指针,也便是数据存放的地址,而接口须要返回的是真实的数据,
由于前后端利用的是不同的内存系统,以是无法根据地址找到相应的数据,而echo print sprinf等这些能够在浏览器中打印数据的函数都是基于http协议传输的真是数据,以是在前端是可以获取和判断的.
须要把稳的是,在tp框架中,return关键字的确是可以给返回数据的,也便是可以作为接口返回数据关键字的,但是用原生的php是弗成的,这该当是tp框架内部做过处理了吧!这里就不在穷究了,有兴趣的朋友,可以去看下tp的源码!!