我正在尝试从以下代码中删除未定义的偏移量错误,但无法弄清楚如何。
$number = 20;
$pack = 10;
$i = 0;
while ($number % $pack == 0)
{
$number = $number / $pack;
$i++;
}
list($firstpart,$secondpart)=explode('.', $number);
echo $firstpart;
echo '<br>';
echo isset($secondpart)? number_format($secondpart,0):'0';
此代码为我提供了正确的答案,但它输出了以下错误:
E_NOTICE:类型8 - 未定义的偏移量:1 - 第11行
如何更改代码以删除错误。在$ number = 20.5的情况下,没有错误。感谢。
答案 0 :(得分:2)
由于您为list()
使用了两个参数,它会尝试从[0]
引用索引[1]
和explode()
,但只有[0]
因为{{} 1}}在没有explode()
时只返回一个数组元素。请改用:
.
答案 1 :(得分:0)
这将有效:
list($firstpart, $secondpart) = explode('.', $number.(strpos($number, '.') === false ? ".0" : ''));
这是一个解释所以我不会被指控巫术: - )
list($firstpart, $secondpart) =
explode(
'.', // explode on a period
$number.(strpos($number, '.') === false ? ".0" : '') // if the number does not contain a period then manually add ".0" so that explode can work but if it does then just leave it as-is
);