2

我正在写一个 if 语句,如果列出的两个日期相等,它会回显第一个日期,如果它们不是(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);
4

5 回答 5

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;
}
于 2012-12-12T02:57:59.943 回答
1

是的,当然,函数内部允许使用 If 语句。您的问题是您将 variable$date的值设置为 a 的值T_IF,这是非法的。

相反,您可以执行以下操作:

$date=($row_id == $row_end);
if($date)
{
    echo $row_id;
}
else {
    echo $row_id." - ".$row_end; 
}
于 2012-12-12T03:00:35.617 回答
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 将变量的值设置为$dateif 语句,这是不可能的。

另一段代码创建一个新变量$date,然后根据 if 语句的计算方式将其值设置为$row_id或。$row_id." - ".$row_end;

于 2012-12-12T02:56:55.370 回答
0

echo 语句用于将某些内容打印到输出缓冲区。

你必须这样做:

if ($row_id == $row_end) {
    $date = something
} else {
    $date = somethingElse
}
//do whatever you want with $date
于 2012-12-12T02:59:37.463 回答
0

尝试

$date=$row_id;
if ($row_id != $row_end)
{
    $date.=" - ".$row_end;
}

我猜这应该短得多

于 2012-12-12T03:01:12.347 回答