2013-10-30 160 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