php – 警告:不能使用标量值作为数组

前端之家收集整理的这篇文章主要介绍了php – 警告:不能使用标量值作为数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
执行我的状态脚本时看到以下错误
Warning: Cannot use a scalar value as an array in 

$result[$array[$i*2]] = $array[$i*2+1];

我究竟做错了什么?
我已经包括下面的完整代码

<?PHP 

// Set the host and port 
$host = "ip_goes_here"; 
$port = port_goes_here; 

// Open the socket connection to the server 
$fp = fsockopen("udp://".$host,$port); 

// Set the string to send to the server 
$string = "\xff\xff\xff\xffgetinfo"; 

// Set the socket timeout to 2 seconds 
socket_set_timeout($fp,2); 

// Actually send the string 
fwrite($fp,$string); 

// Read the first 18 bytes to get rid of the header and do the error checking here 
if(!fread($fp,18)) { 

      die("Oh God,the pain!"); 
} 

// Get the status of the socket,to be used for the length left 
$status = socket_get_status($fp); 

// Read the rest 
$info = fread($fp,$status['unread_bytes']); 

// Explode the result of the fread into another variable 
$array = explode("\\",$info); 

// Loop through and create a result array,with the key being even,the result,odd 
for($i = 0; $i < count($array)/2; $i++) { 

    $result[$array[$i*2]] = $array[$i*2+1];
} 

// Print the result for error checking 
print_r($result);     

// Close the file pointer 
fclose($fp);

我提到的那一行导致错误.我不知道我在这里做错什么

您可以尝试在使用变量$result之前,将其作为数组声明.
$result = array();
// Loop through and create a result array,odd 
for($i = 0; $i < count($array)/2; $i++) { 

    $result[$array[$i*2]] = $array[$i*2+1];
}

猜你在找的PHP相关文章