PHP如果为空,或者如果是,则执行此操作

时间:2013-01-04 13:58:53

标签: php

我有以下代码:

<p><? echo $langdata['oneprodpage_brand']; ?>:</strong> <? echo $thisproduct['brandname']; ?></p>

它带来了这个:

  

品牌名称:{品牌名称}

如果没有给出品牌,则默认添加“无品牌”(所有数据都在数据库中添加)

我想做的事情,如果php发现这个值“没有品牌”然后做什么......

我该怎么做?

我试过这个

 <? if ($thisproduct['brandname'] == Without brand) { ?>
 <? } else { ?>
 <p><? echo $langdata['oneprodpage_brand']; ?>:</strong> <? echo $thisproduct['brandname']; ?></p>
 <? }; ?>

但它不起作用

2 个答案:

答案 0 :(得分:2)

你忘记了一些没有品牌的报价,你的代码将是:

<? if ($thisproduct['brandname'] == "Without brand") { ?>
 <? } else { ?>
 <p><? echo $langdata['oneprodpage_brand']; ?>:</strong> <? echo $thisproduct['brandname']; ?></p>
 <? }; ?>

当你没有品牌时想要执行的代码应该在:

之后
<? if ($thisproduct['brandname'] == "Without brand") { ?>

之前:

<? } else { ?>

但是,我希望你的方式真的不那么可读,我宁愿:

<?php
    if ($thisproduct['brandname'] == "Without brand") {
        // Do something
    } else {
        echo "<p>". $langdata['oneprodpage_brand'] ."</strong>". $thisproduct['brandname'] ."</p>";
    }
?>

答案 1 :(得分:0)

您可以尝试这样的事情:

$withoutBrandNames = array('Without brand');
if (in_array($thisproduct['brandname'], $withoutBrandNames)) {
    $thisproduct['brandname'] = 'This product has no brand';
}
echo $thisproduct['brandname'];

或者,如果您认为评论建议:

if (stristr($thisproduct['brandname'], 'Without brand') === false) {
    $thisproduct['brandname'] = 'This product has no brand';
}
echo $thisproduct['brandname'];

我使用了不区分大小写的比较函数,以防出现异常情况,选择当然是你自己的。

PS:正如评论所示,如果标签全部包含代码,则无需打开和关闭标签,您甚至可以使用这样的短期语法:

<?php if (statement): ?>
    <p> Some lovely HTML</p>
<?php else: ?>
    <p>Some different lovely HTML</p>
<?php endif; ?>

我讨厌视图文件中的花括号,事实上,我一般都讨厌视图文件中的PHP - 但这似乎是必要的。