PHP Undefined Offset除非打印出来

时间:2013-09-18 09:06:16

标签: php arrays undefined offset

尝试从套接字读取数据时,通过解释器运行以下代码:

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);这将永远成功。

为什么我需要打印数组元素才能让它一直成功?

1 个答案:

答案 0 :(得分:0)

不确定为什么需要回音/打印才能工作,但是......

尝试做

var_dump($sc_rturn);

看看你得到了什么。

还要检查未定义的索引,你应该做

isset($sc_return[4]);

您也可以使用

计算结果
count($sc_return);