出乎意料的是,

时间:2014-06-04 05:05:57

标签: php html if-statement

if ($postcode > 6999 && $postcode < 8000); 
{
    echo "Tasmania";
    $postage_cost = "$22.50"; 
}   
elseif ($postcode > 5999); 
{
    echo "Western Australia";
    $postage_cost "$27.50";
}
elseif ($postcode > 4999); 
{
    echo "Southern Australia";
    $postage_cost "$15.00";
}

这只是一个片段;

  

(!)解析错误:语法错误,第29行C:\ wamp \ www \ projects \ output.php中的意外'elseif'(T_ELSEIF)

我认为意想不到的会转到所有的elseif的

5 个答案:

答案 0 :(得分:2)

您的代码中存在几个问题。

首先 - 在IF / ElSEIF语句后不要使用;。它应该像

if ($postcode > 6999 && $postcode < 8000) {
    echo "Tasmania";
    $postage_cost = "$22.50"; 
} elseif ($postcode > 5999) {...

为什么呢?因为分号用于结束语句。因此,在IF / ELSE / ELSEIF语句之后立即将其置为空。在IF之后写;将与写入相同(除了您可以将结果分配给变量):

$foo = ($postcode > 6999 && $postcode < 8000); //$foo would be true or false

第二 - 缺少一些赋值运算符:

$postage_cost = "$27.50"; // Note the =

解决这些问题,你应该好好去:)

答案 1 :(得分:1)

您已将分号添加到每个if else条件中删除;此外,您还没有将=放入某行,因此请添加该分号。您可以尝试以下代码

if ($postcode > 6999 && $postcode < 8000) {
    echo "Tasmania";
    $postage_cost = "$22.50"; 
    }   
    elseif ($postcode > 5999) {
    echo "Western Australia";
    $postage_cost = "$27.50";
    }
    elseif ($postcode > 4999) {
    echo "Southern Australia";
    $postage_cost = "$15.00";
    }

答案 2 :(得分:0)

在你的if条件之后一定不能有冒号。删除它们,它将工作:

if ($postcode > 6999 && $postcode < 8000) {
  echo "Tasmania";
  $postage_cost = "$22.50"; 
} elseif ($postcode > 5999) {
  echo "Western Australia";
  $postage_cost = "$27.50";
} elseif ($postcode > 4999) {
  echo "Southern Australia";
  $postage_cost = "$15.00";
}

答案 3 :(得分:0)

试试这个

if (($postcode > 6999) && ($postcode < 8000)) 
{
    echo "Tasmania";
    $postage_cost = '$22.50'; 
}   
elseif ($postcode > 5999) 
{
    echo "Western Australia";
    $postage_cost='$27.50';
}
elseif ($postcode > 4999) 
{
    echo "Southern Australia";
    $postage_cost='$15.00';
}

答案 4 :(得分:0)

中删除semicolon elseif 语句

所以代码看起来像这样

if ($postcode > 6999 && $postcode < 8000) {
echo "Tasmania";
$postage_cost = "$22.50"; 
}   
elseif ($postcode > 5999) {
echo "Western Australia";
$postage_cost = "$27.50";
}
elseif ($postcode > 4999) {
echo "Southern Australia";
$postage_cost = "$15.00";
}