【发布时间】:2021-04-01 01:54:19
【问题描述】:
需要一些帮助,我已经完成了,但我无法让它显示或正常工作。使用 str_replace,假设获取实际的信用卡号并从中删除 -。我把那部分写下来了,但是当我创建一个嵌套的 if 语句并使用 is_numeric 进行验证时,它显示“这是一个无效的卡号”;当然,如果我把它写成 is_numeric($CreditNumber)) 它也会打印出信用卡号和回声。
另外,我注意到一件事。我已将此文件上传到我们的课程服务器,它显示了信用卡号,但它显示了两次,而当我使用 XAMPP 时它根本不显示它。
有什么建议吗?这是代码
<?php
$CreditCard = array ("", "8910-1234-5678-6543", "OOOO-9123-4567-0123");
foreach ($CreditCard as $CreditNumber) {
if(empty($CreditNumber)) {
echo "Invalid Card Number <br/>";
} else {
$CreditNumber = str_replace("-", "", $CreditCard[1]);
echo $CreditNumber;
echo "<br/>";
if (is_numeric()) {
echo "This is an invalid Card Number";
} else {
echo $CreditNumber; //This shows the credit card number without the dashes
}
}
}
?>
编辑:
我已经完成了,它最后显示了正确的数字,但出于某种奇怪的原因,它重复了两次 16 位数字
<?php
$CreditCard = array ("", "8910-1234-5678-6543", "OOOO-9123-4567-0123");
foreach ($CreditCard as $CreditNumber) {
if(empty($CreditNumber)) {
echo "Invalid Card Number <br/>";
} else {
$CreditNumber = str_replace("-", "", $CreditCard[1]);
//echo $CreditNumber;
//echo "<br/>";
if (is_numeric($CreditCard)) {
echo "This is an invalid Card Number";
} else {
echo $CreditNumber; //This shows the credit card number without the dashes
}
}
}
?>
【问题讨论】:
-
仅供参考,信用卡不是数字,即使它们仅由数字组成,所以不要这样对待它们。将它们视为字符串。
-
$CreditCard[1]应该是$CreditCard -
if (is_numeric()) {应该是if (is_numeric($CreditCard)) { -
我之所以将它作为“$CreditCard[1]”是因为它是一个数组,所以我只需要第二部分。在 'if (is_numeric($CreditCard))' 上,我输入了 '$CreditNumber' 但它现在起作用了,唯一的问题是数字重复第二次,为什么?
-
请添加所需的输出
标签: php foreach str-replace isnumeric