试图在php中编写一个正确的if语句

时间:2011-08-01 22:42:37

标签: php

我很难绕过如何做到这一点...我有一个选择菜单我希望显示为默认值,如果某些商品出现在购物车中则会显示不同的菜单。

所以说我卖狗和车。在购物车中我选择了其中一个。如果购物车中有任何车辆,我想要一个选择菜单出现。但如果购物车或猫中有任何狗,我想要一个不同的选择,出现不同的选项。所以car_select将是默认的,如果购物车中有任何东西......(我卖了很多东西)但是如果狗出现在购物车中,那么dog_select将取代它。

现在写的方式。默认是最后一件事,这就是显示的内容。 (见我的评论)

所以代码:

<?php
foreach($this->rows as $i => $row){

if (strstr('dogs',$row->dates)) {
$mydates = 'dogs';
} else {$mydates='default';}


//echo $row->dates; this spits out the correct values dogcar


}
//echo $mydates; with a dog and a car in the cart this returns default
//below functions i believe but i think the above is faulty 
?>
<?php 
if ($mydates =='dogs'){
//do something here;} else {

    $type = $this->type;
    foreach($this->extraFields[$type] as $fieldName => $oneExtraField) {
     if ($fieldName != 'pickupdate-rosh'){; ?>
        <tr class="hikashop_checkout_<?php echo $fieldName;?>_line">
            <td class="key">
                <?php echo $this->fieldsClass->getFieldName($oneExtraField);?>
            </td>
            <td>
                <?php 

                        echo $this->fieldsClass->display($oneExtraField,$this->$type->$fieldName,'data['.$type.']['.$fieldName.']'); 
                ?>
            </td>
        </tr>
<?php } ?>
    <?php } ?>
<?php } ?>

我想总是返回car_select,除非车内有狗或猫等。 {编辑:我刚刚意识到这不是用于查找字符串的正确函数。}

1 个答案:

答案 0 :(得分:2)

看起来你正在设置$mydates,然后覆盖它(可能)。这是因为您为foreach循环的所有迭代设置了一个变量到一个结果,最后一次迭代将是最终变量值。

因此,将$mydates设置为默认值,然后在条件合适时更改它。

$mydates='default';
foreach($this->rows as $i => $row){
    if (strstr('dogs',$row->dates)) {
        $mydates = 'dogs';
    }
    //echo $row->dates; this spits out the correct values dogcar
}