2013-10-30 163 views
1

我正在使用通过http发送$ _POST数据的第三方API,他们期待的所有数据都是True或False。返回True/False布尔值http请求

问题:我知道我可以回显字符串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; 


} 

回答

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真的还是假的,从这里,那么做印刷点在哪里你调用这个函数。

+0

谢谢我觉得我很困惑自己,但回去后的文档没有提到布尔(像我认为它有)谢谢你的帮助。 +1检查。 – Denoteone