php 输出01,ThinkPHP5 响应输出 - 01

本文详细介绍了ThinkPHP5中Response响应对象的使用,包括自动和手动输出数据,以及如何设置HTTP状态码和响应头信息。通过示例代码展示了如何返回不同类型的输出,如JSON、XML,并强调了在控制器中使用return而非echo的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

响应(Response)对象用于动态响应客户端请求,控制发送给用户的信息。通常用于输出数据给客户端或者浏览器。 ThinkPHP5的  Response响应对象由  think\Response类或者子类完成,ThinkPHP的  App::run()方法的返回值是一个  Response对象实例,最终会调用  Response对象的  send方法完成输出。 自动输出 大多数情况,我们不需要关注Response对象本身,只需要在控制器的操作方法中返回数据即可,系统会根据default_return_type和default_ajax_return配置决定响应输出的类型。 默认的自动响应输出会自动判断是否AJAX请求,如果是的话会自动输出default_ajax_return配置的输出类型。 <?php namespace app\index\controller; class Index {     public function hello()     {         $data = [             'name' => 'thinkphp',             'status' => '1'         ];         return $data;     } } 由于默认是输出Html输出,所以访问页面输出结果为: 修改配置文件,添加: // 默认输出类型 'default_return_type'    => 'json', 再次访问的输出结果为: 修改输出类型为xml: // 默认输出类型 'default_return_type'    => 'xml', 则输出结果变成: 现在明白为什么控制器的操作方法中不要直接echo输出,而要使用return返回了。 手动输出 在必要的时候,可以手动控制输出类型和参数(也是建议的方式),这种方式较为灵活。 例如如果需要指定json输出类型,可以使用下面的方式: <?php namespace app\index\controller; use think\Response; class Index {     public function hello()     {         $data = [             'name' => 'thinkphp',             'status' => '1'         ];         return Response::create($data, 'json');     } } 或者直接使用系统提供的助手函数输出json: <?php namespace app\index\controller; class Index {     public function hello()     {         $data = [             'name' => 'thinkphp',             'status' => '1'         ];         return json($data);     } } 使用助手函数不受配置参数设置的影响,页面输出的结果为: {"name":"thinkphp","status":"1"} 默认的情况下发送的http状态码是200,如果需要返回其它的状态码,可以使用: <?php namespace app\index\controller; class Index {     public function hello()     {         $data = [             'name' => 'thinkphp',             'status' => '1'         ];         return json($data, 201);     } } 或者发送更多的响应头信息: <?php namespace app\index\controller; class Index {     public function hello()     {         $data = [             'name' => 'thinkphp',             'status' => '1'         ];         return json($data, 201, ['Cache-control' => 'no-cache,must-revalidate']);     } } 也支持使用下面的链式调用的方式: <?php namespace app\index\controller; class Index {     public function hello()     {         $data = [             'name' => 'thinkphp',             'status' => '1'         ];         return json($data)->code(201)->header(['Cache-control' => 'no-cache,must-revalidate']);     } } 默认支持的输出类型包括: 输出类型    快捷方法    对应Response类 HTML输出    response    \think\Response 渲染模板输出    view    \think\response\View JSON输出        json    \think\response\Json JSONP输出        jsonp    \think\response\Jsonp XML输出            xml        \think\response\Xml 页面重定向        redirect    \think\response\Redirect 所以,同样的可以使用  xml方法输出  XML数据类型: <?php namespace app\index\controller; class Index {     public function hello()     {         $data = [             'name' => 'thinkphp',             'status' => '1'         ];         return xml($data, 201);     } } 如果你只需要输出一个html格式的内容,可以直接使用 <?php namespace app\index\controller; class Index {     public function hello()     {         $data = 'Hello,ThinkPHP!';         return response($data);     } } 每一种输出类型其实对应了一个不同的Response子类(response()函数对应的是Response基类),也可以在应用中自定义Response子类满足特殊需求的输出。 这些助手函数的返回值都是Response类或者子类的对象实例,所以后续可以调用Response基类或者当前子类的相关方法,后面我们会讲解相关方法。 关于view助手函数的详细用法我们还会在下一讲中进行更详细的讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值