0

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

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

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

是这样吗 - 任何人都可以更有帮助地解释为什么 return 不起作用,以及我应该何时使用每个。

4

4 回答 4

2

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

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

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

于 2013-06-30T05:59:29.523 回答
1

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

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

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

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

于 2013-06-30T05:58:23.800 回答
0

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

于 2013-06-30T05:58:16.823 回答
0

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

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

于 2013-06-30T05:59:00.927 回答