我有这样的错误:解析错误:语法错误,第132行/home/user/public_html/page.php中的意外T_IF
这是代码:
<td><b>".$row['extension']."</b></td>
<td>".$row['curprefix']." ".if {($row['msetupfee'] =='-1.00') { echo 'N/D'; } else {$row['msetupfee'];}."</td>
<td>".$row['curprefix']." ".$row['qsetupfee']."</td>
第132行是:
<td>".$row['curprefix']." ".if {($row['msetupfee'] =='-1.00') { echo 'N/D'; } else {$row['msetupfee'];}."</td>
答案 0 :(得分:4)
你不能在连接字符串的过程中放入IF。要么之前做IF,要么传递你有IF的值
if ($row['msetupfee'] =='-1.00') {
$v = "N/D";
}
else {
$v = $row['msetupfee'];
}
//
// Other code
//
..."<td>" . $row['curprefix'] . " " . $v ."</td>"...
或者这样做......
..."<td>" . $row['curprefix'] . " " . ($row['msetupfee'] =='-1.00' ? 'N/D' : $row['msetupfee']) . "</td>"...
答案 1 :(得分:2)
您可以使用三元语句来实现此目的:
<?php
if {($row['msetupfee'] =='-1.00') { echo 'N/D'; } else {$row['msetupfee'];}
?>
成为
<?php
echo (($row['msetupfee'] =='-1.00') ?'N/D':$row['msetupfee']);
?>
所以:
echo "<td>".$row['curprefix']." ".if {($row['msetupfee'] =='-1.00') { echo 'N/D'; } else {$row['msetupfee'];}."</td>"
成为
echo "<td>".$row['curprefix']." ".(($row['msetupfee'] =='-1.00') ?'N/D':$row['msetupfee'])."</td>"
答案 2 :(得分:1)
如果您想在字符串中添加if,请使用&#39;?&#39;
"<td>".$row['curprefix']." ". $row['msetupfee'] == '-1.00' ? 'N/D' : $row['msetupfee']."</td>";
答案 3 :(得分:0)
您不能在字符串连接的中间放置if语句。您可以在外部使用if语句并根据条件更改变量,然后在连接中打印该变量。
<?php
$vb;
if ($row['msetupfee'] =='-1.00') {
$vb = 'N/D';
} else {
$vb = $row['msetupfee'];
}
echo "<td>".$row['curprefix']." ".$vb</td>";
?>
答案 4 :(得分:0)
由于您在发布代码时省略了echo
,我猜您尝试做的是:
<?php
echo "<td><b>".$row['extension']."</b></td>
<td>".$row['curprefix']." ".if {($row['msetupfee'] =='-1.00') { echo 'N/D'; } else {$row['msetupfee'];}."</td>
<td>".$row['curprefix']." ".$row['qsetupfee']."</td>";
?>
echo
语句中使用控制结构。if
语句也有语法错误:if {(condition) { ... }
错误!它应该是if (condition) { ... }
你可以做几件事。
<?php
echo "<td><b>".$row['extension']."</b></td><td>".$row['curprefix'];
if ($row['msetupfee'] =='-1.00') {
echo 'N/D';
} else {
$row['msetupfee'];
}
echo "</td><td>".$row['curprefix']." ".$row['qsetupfee']."</td>";
?>
<?php
function getSetupFee($msetupfee) {
if ($msetupfee =='-1.00') {
return 'N/D';
} else {
return $msetupfee;
}
}
echo "<td><b>".$row['extension']."</b></td><td>".$row['curprefix'].
getSetupFee($row['msetupfee']).
"</td><td>".$row['curprefix']." ".$row['qsetupfee']."</td>";
?>
您遇到了这些问题,因为您将HTML和代码混合在一起。
混合标记(HTML)和业务逻辑的方式实际上是不可读的。将标记和逻辑分开会很好。此外,保留HTML的层次结构是一种很好的做法。
最简单的方式可以做到这一点:
<td>
<b><?php echo $row['extension']; ?></b>
</td>
<td>
<?php
echo $row['curprefix'];
if ($row['msetupfee'] == '-1.00') {
echo 'N/D';
} else {
$row['msetupfee'];
}
?>
</td>
<td>
<?php echo $row['curprefix']." ".$row['qsetupfee']. ?>
</td>
在这个重新分解的代码中,很明显你正在创建三个表格单元格,以及在单元格内打印的值。