我正在编写一个if语句,如果列出的两个日期相等,则echo是第一个日期,如果它们不是(else语句),它回显“date1-date2”我将它放在一个函数中,我不知道知道我是否有能力这样做。这就是我得到的错误
解析错误:语法错误,意外T_IF
这是我的功能:
function getfevent ($conn) {
$sql = "SELECT `name` FROM `event` WHERE `featured` = 0 LIMIT 0, 30 ";
$statement=$conn->prepare($sql);
$statement->execute();
while($row=$statement->fetch()) {
$eventname = $row['name'];
$row_id=geteventid ($conn,$eventname);
$row_end=geteventend ($conn,$eventname);
$date=if ($row_id == $row_end){
echo $row_id;
}
else {
echo $row_id " - " $row_end;
}
?>
<?php echo "<td>$eventname</td><td>$date</td></tr>"; ?>
<?php
}
}
getfevent($conn);
答案 0 :(得分:1)
可能你想要这个。
$date = $row_id == $row_end ? $row_id : $row_id . " - " . $row_end;
echo $date;
别忘了。使用.
连续。
与
相同if ($row_id == $row_end) {
$date = $row_id;
} else {
$date = $row_id . " - " . $row_end;
}
答案 1 :(得分:1)
是的,当然在函数内部允许使用语句。您的问题是,您将变量$date
的值设置为T_IF
的值,这是非法的。
相反,你可以这样做:
$date=($row_id == $row_end);
if($date)
{
echo $row_id;
}
else {
echo $row_id." - ".$row_end;
}
答案 2 :(得分:0)
而不是:
$date=if ($row_id == $row_end){
echo $row_id;
}
else {
echo $row_id " - " $row_end;
}
尝试:
$date;
if ($row_id == $row_end)
$date=$row_id;
else
$date=$row_id." - ".$row_end;
您在原始代码中所做的事实上是告诉PHP将变量$date
的值设置为if语句,这是不可能的。
备用代码片段创建一个新变量$date
,然后根据if语句的计算方式将其值设置为$row_id
或$row_id." - ".$row_end;
。
答案 3 :(得分:0)
echo语句用于将某些内容打印到输出缓冲区。
你必须这样做:
if ($row_id == $row_end) {
$date = something
} else {
$date = somethingElse
}
//do whatever you want with $date
答案 4 :(得分:0)
试
$date=$row_id;
if ($row_id != $row_end)
{
$date.=" - ".$row_end;
}
这应该短得多