我有一个发送到身份服务器的卷发帖子。我必须发布用户的凭据并处理返回的响应。我的问题是脚本在响应返回之前继续执行。
$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会阻塞该线程,为什么
答案 0 :(得分:0)
如果您尝试检查$output['error']
是不 null
来验证错误发生,那么您做错了。
if(empty($error)){
应该是
if( ! empty($error)){
或者
if(isset($error)){