注意:未定义的偏移量:返回千以下的数字时为1

Posted

技术标签:

【中文标题】注意:未定义的偏移量:返回千以下的数字时为1【英文标题】:Notice: Undefined offset: 1 when returning number that is below thousand 【发布时间】:2015-04-17 19:17:27 【问题描述】:

我在网上获得了这段代码,并在一个从提要 URL 中检索数据的函数中实现了它。这是代码:

function subs_count() 
  $x = esc_attr( subs_count_ret() );
  $x_number_format = number_format($x);
  $x_array = explode(',', $x_number_format);
  $x_parts = array('k', 'm', 'b', 't');
  $x_count_parts = count($x_array) - 1;
  $x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
  $x_display .= $x_parts[$x_count_parts - 1];
  return $x_display;

如果数字大于1k,代码可以正常工作,但是当检索到的数字是< 1k 时,它会返回该数字以及下面的错误:

Notice: Undefined offset: 1 in C:\wamp\www\preview\wp-content\plugins\xx\xx.php on line 7

Notice: Undefined offset: -1 in C:\wamp\www\preview\wp-content\plugins\xx\xx.php on line 8

有什么想法吗?

谢谢!

【问题讨论】:

所以基本上你决定不告诉我们错误发生在哪一行? @adeneo 那么看起来像是在寻找复活节彩蛋? 第 213 行是哪一个? 是的,我忘了,你怎么知道?这是第7行。再次道歉! esc_attr 电话?如果是这样,我们需要知道subs_count_ret() 返回什么? 【参考方案1】:

我明白了。我将整个代码放在subs_count_ret() 函数中,它运行良好,另外,我需要这个条件:

if(empty($num) || $num < 1000) return $num;

完整代码:

function subs_count_ret() 
    $xmlData = file_get_contents( 'http://gdata.youtube.com/feeds/api/users/user' ); 
    $xmlData = str_replace('yt:', 'yt', $xmlData); 
    $xml = new SimpleXMLElement($xmlData); 
    $ytio_subs = $xml->ytstatistics['subscriberCount'];
    $num = $ytio_subs;
        if(empty($num) || $num < 1000) return $num;
        $x = round($num);
        $x_number_format = number_format($x);
        $x_array = explode(',', $x_number_format);
        $x_parts = array('k', 'm', 'b', 't');
        $x_count_parts = count($x_array) - 1;
        $x_display = $x;
        $x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
        $x_display .= $x_parts[$x_count_parts - 1];
        return  $x_display;

谢谢大家!祝你有美好的一天!

【讨论】:

以上是关于注意:未定义的偏移量:返回千以下的数字时为1的主要内容,如果未能解决你的问题,请参考以下文章

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”、“警告:未定义的数组键”和“注意:未定义的偏移量”使用 PHP