尝试从套接字读取数据时,通过解释器运行以下代码:
function get_song_title($stream){
$song;
$sc_return = array();
$sc_return = explode("\r\n",$stream);
$song = $sc_return[4];
return $song;
}
这将成功获得我需要的信息20%的时间。
然而,当我这样做时:
function get_song_title($stream){
$song;
$sc_return = array();
$sc_return = explode("\r\n",$stream);
echo $sc_return[4];
$song = $sc_return[4];
return $song;
}
它将在100%的时间内成功。任何打印数组(或其元素)的方法都可以使它无故障地工作。如果我只是尝试返回它或分配它,则会出现未定义的偏移4消息。
这还包括使用print_r($ sc_return);这将永远成功。
为什么我需要打印数组元素才能让它一直成功?
答案 0 :(得分:0)
不确定为什么需要回音/打印才能工作,但是......
尝试做
var_dump($sc_rturn);
看看你得到了什么。
还要检查未定义的索引,你应该做
isset($sc_return[4]);
您也可以使用
计算结果count($sc_return);