【发布时间】: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”