我正在使用通过http发送$ _POST数据的第三方API,他们期待的所有数据都是真或假。
问题:我知道我可以回显字符串true或false但是可以返回类似函数返回的值吗?如果错误,我将通过回显或打印向屏幕发送错误消息。这会影响返回的布尔值吗?
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ){
$dataPOST = trim(file_get_contents('php://input'));
receiveData($dataPOST);
}
public function receiveData($sentData)
{
$dom = new DOMDocument;
$dom->Load($sentData);
if ($dom->validate()) {
return true;
}else{
echo "The XML data was not valid";
return false;
}
答案 0 :(得分:1)
不,你做不到。外部API将期望结果中的字符串,并且您需要print
该字符串作为响应。只是从函数返回true / false将不起作用。你需要回显真/假。是的,如果他们的API期望只看到这些值中的任何一个,那么打印任何额外的东西都会使响应无效。
而不是
return true; //This will never get back to their API like this, unless you print it somewhere
写
echo "true";
就像
一样 if ($dom->validate()) {
echo "true";
}else{
echo "false";
}
但如果你仍然希望从这里return
为真或假,那么在你调用函数的位置进行打印。