1

我正在使用通过 http 发送 $_POST 数据的第 3 方 API,他们所期望的只是 True 或 False。

问题:我知道我可以回显字符串 true 或 false,但是否可以返回类似于函数返回的值?此外,如果为 false,我将通过 echo 或 print 将错误消息发送到屏幕。这会影响返回的布尔值吗?

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;


}
4

1 回答 1

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 从这里判断为真或假,那么在你调用函数的地方进行打印。

于 2013-10-30T03:56:06.043 回答