【问题标题】:php: When to use echo and return [duplicate]php:何时使用回声并返回[重复]
【发布时间】:2013-06-27 13:51:16
【问题描述】:

我有一个包含查询/ajax 功能的网页,因此当文本框完成时,会运行一个 php 文件,该文件会自动填充表单中的一些其他输入。

在我运行的 php 文件中,最初我使用 return 将适当的数据发送到 jquery/ajax 函数。但是,这不起作用。从那以后我发现它只适用于echo

阅读了returnecho 之后,我认为这与query/javascript 作为客户端语言有关,因此请求来自需要echo 而不是return 的浏览器.

是这样吗 - 谁能更有帮助地解释为什么 return 不起作用,以及我应该何时使用它们。

【问题讨论】:

  • @deceze 也许我读过这个问题。我的坏

标签: php javascript jquery return echo


【解决方案1】:

return 将数据返回给调用者。这是一种完全在 PHP 内部的机制,它不会产生任何输出

通过 AJAX 调用 PHP 脚本,您正在发出 HTTP 请求。返回值将是 HTTP 响应。您永远不会通过 AJAX 调用“PHP 函数”,而是像对任何其他网站一样发出 HTTP 请求。只有 output 会出现在 HTTP 响应中。 echo 产生输出return 不产生。

只需在浏览器中直接打开 URL、使用浏览器网络检查工具或使用 curl 等手动发出请求,即可查看原始请求和响应。它没有魔法,它只是 HTTP。

【讨论】:

    【解决方案2】:

    return 用于将值从函数返回给调用代码。它在您的 PHP 脚本中传递值。

    echo 将其参数输出到输出缓冲区,然后再发送到浏览器。

    【讨论】:

      【解决方案3】:

      让我们暂时忽略 JavaScript;这不是问题。

      PHP 是一种专注于生成文本的语言。它非常专注于生成文本,以至于它实际上默认将文本从输入复制到输出;只有当你念诵魔法咒语<?php 时,它才真正开始发挥作用。

      由于它非常注重输出,您可能会期望它有一种简单的方法可以将一些文本发送到其输出,而且您是对的:它被称为echoecho 输出数据。

      当然,大多数现代编程语言都有函数。函数可以返回值。当然,一个函数可能想要输出一些数据返回一个值也是有意义的。 return 从函数返回一个值。

      【讨论】:

        【解决方案4】:

        Return 仅适用于在服务器端的函数之间传递数据。另一方面,发送到浏览器的数据必须得到回显。

        【讨论】: