【问题标题】:Return is completely ignored [duplicate]返回被完全忽略[重复]
【发布时间】:2014-09-03 11:01:55
【问题描述】:

我有以下代码

<?php   
    $token = '';
    if(!empty($_POST['token'])) $token = $_POST['token'];

    $url = '';
    if(!empty($_REQUEST['url'])) $url = Sanitize($_REQUEST['url']);

    if(!filter_var($url, FILTER_VALIDATE_URL)) return 'erro1';
?>

这个页面应该由 AJAX 执行,所以我正在编写错误代码,现在如果 URL 无效,我希望它返回 erro1

问题是,它永远不会返回erro1。我尝试转储 filter_var 的结果,正如预期的那样,它是 false!即使 URL 无效,页面也会简单地执行并且什么也不返回,但是如果我用回显切换返回,它就可以工作。

这是为什么呢? 为什么回显工作但不返回?

【问题讨论】:

    标签: php ajax return echo


    【解决方案1】:

    您需要使用echo 而不是return。您的 Web 服务器执行 PHP 代码并提供其 输出,您使用 echo 和其他打印功能生成。

    在函数之外,return interrupts 脚本。

    【讨论】:

      【解决方案2】:

      return 会将一个函数的值返回给调用该函数的代码。它只能在 PHP 内部使用。

      您的return 语句不在函数中。

      要将数据写入 JavaScript 可以读取的 HTTP 响应,您需要使用 echoprint 或类似名称。

      【讨论】:

        猜你喜欢
        • 2012-11-19
        • 1970-01-01
        • 2022-06-15
        • 2021-01-13
        • 2011-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多