我在这个问题上遇到了困难,我有一个填充数组的类。
有时数组不会被填充,我想在发生这种情况时制作一个边缘情况但是我似乎无法告诉它何时为空!这是代码:
$results_dev = $class->get_data_nologin("4a9d-4f41-9566-7705",$key,"Sensors");
echo "something";
print_r($results_dev);
if(is_null($results_dev))
{
echo "thisisNULL";
$counter--;
}
“某事”确实得到了回应,但是当我print_r $ results_dev时,它打印“null”并且if语句永远不会执行!我也试过了
if(!$results_dev)
和
if($results_dev == "null")
和
if($results_dev == null)
但它仍然没有在if循环中执行什么,我还能怎么检查呢?
BTW:我的类卷曲API并检索JSON,但有时卷的URL不正确,所以它返回null。更糟糕的是,在此之后我有:
if($results_dev['location'])
{
echo "data".$results_dev['location'];
即使它为null也会执行!它打印“数据”,之后绝对没有。
get_data_nologin的代码:
$url = 'https://api.url/'.$scf.'/'.$deviceid.'?key='.$apikey;
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt($curl_handle, CURLOPT_COOKIEFILE, $cookie_file_path);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer))
{
echo 'Something went wrong :(';
}
else
{
$decodedBuffer = json_decode($buffer, TRUE);
return $decodedBuffer;
}
答案 0 :(得分:3)
使用isset($ results_dev)
if(!isset($results_dev)){
echo "thisisNULL";
$counter--;
}
有了新的输入,这可以成为解决方案:
if(strtolower($results_dev) == 'null'){
echo "thisisNULL";
$counter--;
}