Php I';I’我不知道如何避开这个通知

Php I';I’我不知道如何避开这个通知,php,Php,当我执行以下脚本时: <?php $num = 3; list($num, $dec) = explode(".", $num); ?> PHP说: 注意:第3行的未定义偏移量:1 in/home/www/test.php 除了禁用这些通知之外,还有什么方法可以阻止此通知显示吗?试试这个 $num = 3; // forces to show the decimal point $rnum = sprintf("%1\$.2f",$num); list($num, $dec

当我执行以下脚本时:

<?php
$num = 3;
list($num, $dec) = explode(".", $num);
?>

PHP说:

注意:第3行的未定义偏移量:1 in/home/www/test.php

除了禁用这些通知之外,还有什么方法可以阻止此通知显示吗?

试试这个

$num = 3;

// forces to show the decimal point
$rnum = sprintf("%1\$.2f",$num);

list($num, $dec) = explode(".", $rnum);
编辑以确保完整性:

或者,您也可以使用数字格式:

$rnum = number_format($num, 2); 

正如Bojan Dević所建议的,此通知告诉您只有一个数组值,解决此问题的一种方法是使用array_pad:

list($num, $dec) = array_pad(explode('.', $num),2,0);

.

虽然您的代码没有实际意义,但我会假设您这样做是为了快速产生错误

如果您添加了第一行代码

ini_set('display_errors','0');

这会抑制错误的显示-但是,您应该只在项目完成并最终部署后执行此操作。。否则,您就不会遇到“为什么它是一个空页面”或“为什么它没有做…”的问题。

在开发时,不要关闭警告。试着改变代码以适应标准。你想做什么?您的代码没有意义。此代码实际上有意义@staticsan@KorvinSzanto是的,现在我看到了另一个答案,我明白他想做什么了。尽管如此,解释所需内容对OP来说还是有好处的。这不是一种充分的编程方式,这个问题可以在不掩盖问题的情况下轻松解决。在项目结束时这样做不会改变你做得不正确的事实,你永远不应该得出最不现实的结论。它不仅掩盖了所有的问题;这是个问题。我投了反对票,因为这不是问题的解决方案,OP明确地问“除了禁用这些通知,还有什么方法可以阻止此通知出现?”你没有回答问题,你只是给了他一些他已经掌握的信息。实际上这是他的问题。如何隐藏错误。不,请解释为什么我写的代码不起作用-因此我的第一行..这是一个有趣的解决方案,我不会想到去sprintf。工作完美!不过,你们的格式和我看到的大多数格式有点不同。你介意带我看一下这段话吗?“%1\$.2f”谢谢你。@Joncom sprintf是一个强大的函数。我邀请您查看完整的参考资料:)您也可以使用数字格式,如:
$rnum=number\u格式($num,2)@BojanDević如果您同意,我将编辑我的答案,添加您的替代解决方案以确保完整性。否则你可以插入另一个答案:)np对我来说。报复性的否决票是幼稚的,并且会从整个网站上拿走。