如果检查

时间:2018-03-29 17:39:05

标签: php rest curl

我有一个发送到身份服务器的卷发帖子。我必须发布用户的凭据并处理返回的响应。我的问题是脚本在响应返回之前继续执行。

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$output = array();
$output = json_decode($response,true);//this is not populated before the next line


//if username or password is incorrect
$error = $output["error"];
if(!empty($error)){
    echo "output error var during login";
    echo var_dump($output);// NULL every time
}

代码没有等待curl响应所以当我在“if”测试中检查$ error时,每次都是NULL,即使我输入了错误的密码。我有一个单元测试,检查代码,服务器返回响应。

$ output变量最终会被填充,但我读到curl会阻塞该线程,为什么

1 个答案:

答案 0 :(得分:0)

如果您尝试检查$output['error'] null来验证错误发生,那么您做错了。

if(empty($error)){

应该是

if( ! empty($error)){

或者

if(isset($error)){