【问题标题】:PHP functions and if/else statementsPHP 函数和 if/else 语句
【发布时间】:2014-02-22 23:24:42
【问题描述】:

我正在尝试编写一个包含 if/else 语句和函数的脚本。一些背景

  • $parts 第一个字符应该是字母“N”
  • $desc 至少应该是一个字符
  • $price 必须为正数(0 或更高)

如果满足所有这三个要求,那么它应该说“数据已接受”,如果不满足(一个或全部)“无效....”需要显示。

谁能告诉我我应该查看脚本的哪一部分。

<?php
$parts = $_POST["parts"];
$desc  = $_POST["desc"];
$price = $_POST["price"];

$pa = substr($parts, 0, 1);
$de = strlen($desc);

if ($pa != "N")
 {echo "Invalid Part Number";}
else
 if ($de <= 1)
  {echo "Invalid Description Length";}
 else
  if ($price <= 0)
   {echo "Invalid Price";}
    else
     {echo "Data Accepted";}
?>

【问题讨论】:

  • 您的脚本以何种方式无法按您希望的方式运行?
  • 解析错误:第3行解析错误
  • 只看它我会说你需要在变量声明之后将分号放在它们所属的位置。我还要说$pa != N 不起作用 N 应该用引号引起来,然后它只会检查变量是否等于 N 而不是变量的子字符串等于 N。我会看使用substr 来使其正常工作。
  • 好的,我试图使用 substr 来提取零件编号的第一个字符,以便我可以将其与字母 N 进行比较。如果我记得 substr($parts, 0,1) 将从第一个字符并在该字符之后结束。

标签: php function if-statement


【解决方案1】:

第二个 if 应该是 if($de==1) $de=1 将始终返回 true。

还要在每条语句后添加分号。

【讨论】:

  • 你是否在 if 和 else 行添加分号?
  • 我总是把这些写成 (1 == $d) 那么如果我不小心遗漏了一个 = 并执行赋值,它会产生一个编译错误。
  • @Wes 我以前没见过这样写的,但我会记住这一点@Rasika 谢谢
【解决方案2】:

您的要求:-

$parts 第一个字符应该有 字母“N”

$desc 应该至少是一个 字符长

$price 必须为正数(0 或 更高)

解决方案:-

$parts = $_POST["parts"];
$desc  = $_POST["desc"];
$price = $_POST["price"];

$pa = substr($parts, 0, 1);
$de = strlen($desc);

if($pa != 'N') {
    echo "Invalid Part Number";
} elseif($de < 1) {
    echo "Invalid Description Length";
} elseif($price < 0) {
    echo "Invalid Price";
} else {
    echo "Data Accepted";
}

【讨论】:

    【解决方案3】:

    第二个 if 应该是 if($de &lt; 1) 你可以有 if($de == 1) 如果它总是一个字符长,但如果它是 1 个或更多,这将起作用

    【讨论】:

    • 这是一个很好的观点,但不是 ($de
    【解决方案4】:
    $parts = $_POST["parts"];
    $desc  = $_POST["desc"];
    $price = $_POST["price"];
    

    【讨论】:

    • 看起来这是为了回答问题的先前版本。
    • @Phoenix 我可能以为是语法错误,错误报告被禁用了。
    【解决方案5】:
        <?php
        $parts = '';
        $desc = '';
        $price = 0;
        if ($_POST['parts'] != 'n')
        {
        echo 'Not equal to n<br>';
        }
        else {
        'Accepted input<br>';
        }
        $desc = strlen($_POST['desc']);
        if ($desc < 1)
        {
        echo 'Input less than 1<br>';
         }
        else {
        echo 'Accepted input<br>';
        }
        if ($_POST['price'] < 0)
        {
        echo 'Input below 0<br>';
        }
        else {
        echo 'Input accepted<br>';
        }
        ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 2015-07-07
      • 2014-11-11
      相关资源
      最近更新 更多