为什么laravel中,return "xxx";会直接返回xxx并且输出到当前页面上。而php中的 return "xxxx" 并不会输出在页面上任何东西。他们是同一个方法吗,到底怎么在laravel中使用不用输出到页面上内容的php 原始 return 方法。
在Laravel中,并不是因为你return才输出页面,return的东西还需要经过Response,再通过它的send方法发送出去。
Response
send
composer intasll 能下载半个互联网
看了下Laravel源码,答案就在SymfonyComponentHttpFoundationResponse这个类里面
入口文件调用了一个$response->send()方法
public function send() { $this->sendHeaders(); $this->sendContent(); if (function_exists('fastcgi_finish_request')) { fastcgi_finish_request(); } elseif ('cli' !== PHP_SAPI) { static::closeOutputBuffers(0, true); } return $this; }
然后再看sendContent()方法
public function sendContent() { echo $this->content; return $this; }
这里看到还是使用的echo
在Laravel中,并不是因为你return才输出页面,return的东西还需要经过
Response
,再通过它的send
方法发送出去。
composer intasll 能下载半个互联网
看了下Laravel源码,答案就在SymfonyComponentHttpFoundationResponse这个类里面
入口文件调用了一个$response->send()方法
然后再看sendContent()方法
这里看到还是使用的echo