【问题标题】:Why null is added to the echo output?为什么将 null 添加到 echo 输出?
【发布时间】:2019-07-13 16:04:37
【问题描述】:

将空字符串添加到 echo $status 输出的末尾:检索到 SUCCESSnull,但只需要 SUCCESS

Webhook 检索 XML,目标是发送不带引号的 SUCCESS 作为结果。使用 return $status 而不是 echo $status 会给出带有引号的“SUCCESS”。

我还看到当函数没有返回任何值时可能会发生这种情况。但在这种情况下,无论结果如何都会强制回显。

已经做了好几个小时的更改,结果相同或更差。非常感谢任何帮助。

function myfunction() {

    //defined as class at the top of the code
    $myobj = new obj ($_REQUEST['messagetype'], $_REQUEST['message']);

    $type = $myobj ->atype;

    if($type === 'MYTYPE'){
        $status = 'SUCCESS';
    } else {
        $status = 'FAIL';
    }
    echo $status;
}

add_action( 'rest_api_init', function () {
    register_rest_route( 'path', '/space', array(
    'methods'  => 'POST',
    'callback' => 'myfunction',
    ));
});

结果 预期:成功或失败(没有引号或空值或其他任何内容)

echo $status; 的实际值 -> SUCCESSnull 或 FAILnull

return $status; 的实际值 -> “SUCCESS”或“FAIL”

return trim($status, '"'); 的实际值 -> "SUCCESS" 或 "FAIL"(仍然引用)

【问题讨论】:

  • null 不是来自您向我们展示的代码。稍后将添加(回显)。在echo $status; 之后添加die(); 然后null 不会出现.. 对吗? also see your code here, it's changed to a minimal code to show
  • 之后没有更多的代码,但已经解决了这种情况。非常感谢!!
  • 哦,请稍等! die(); 不是解决方案! die() 所做的是:它阻止任何其他脚本执行,这可能是一件非常糟糕的事情!只是为了证明echo $status;之后还有其他事情发生
  • 尝试将echo $status;更改为return $status;,看看是否正在显示函数的返回值(并且它没有返回任何可能显示为null的内容)。跨度>
  • return $status 输出为“SUCCESS”或“FAIL”,带双引号。所以也无效。然后使用return trim($status, '"'); -> 双引号仍然保留“SUCCESS”或“FAIL”

标签: php wordpress null echo


【解决方案1】:

根据文档returning_values,如果在函数中省略return,则添加“null”。

在我的情况下,这已使用echo(以避免return 添加的双引号)修复,然后在函数末尾包含exit()

感谢您的帮助,希望这对任何人都有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2011-03-19
    相关资源
    最近更新 更多