注意:未定义的偏移量:返回千以下的数字时为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