内部函数的IF语句

时间:2012-12-12 02:55:09

标签: php function if-statement pdo

我正在编写一个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);

5 个答案:

答案 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;
}

这应该短得多