如何解决php strpos() 在尝试验证用户输入时未按预期执行
我正在尝试编写一个接收数字并输出所有数字总和的程序。问题在于验证输入实际上是一个数字并且不包含字母或其他字符。
请注意,在实际程序中它没有 $number = 1234
,它实际上是通过 HTML 获取用户输入的。
这是我写的:
<?php
$number = 1234;
if (isset($number)){
$Number = $number;
$digits = str_split($Number);
$sum = array_sum($digits);
$digitcount = count($digits);
$chars = "1234567890";
foreach ($digits as $digit){
if (strpos($chars,$digit) != true){
echo "Incorrect formatting";
exit();
}
}
echo $digits[0];
for ($i = 1; $i < $digitcount; $i++){
echo " + ".$digits[$i];
}
echo " = ".$sum;
}
?>
问题出在:
$chars = "1234567890";
foreach ($digits as $digit){
if (strpos($chars,$digit) != true){
echo "Incorrect formatting";
exit();
}
}
应该检查数字是否都是 $chars 的一部分,以确保它们都是数字,但由于某种原因,即使它是 1234 等数字,它也总是输出“格式不正确”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。