由于某种原因,无法在IF语句中设置变量

时间:2015-08-21 09:06:26

标签: php if-statement

真的不确定这里发生了什么,但这只是不起作用!有人对此有任何想法吗?

我试过这个:

if(article_custom_field('product-type') !== '') {
    if(article_custom_field('product-type') == 'cd') return $productType = 'cd'; 
    if(article_custom_field('product-type') == 'audio') return $productType = 'headphones'; 
    if(article_custom_field('product-type') == 'video') return $productType = 'facetime-video'; 
    if(article_custom_field('product-type') == 'download') return $productType = 'save'; 
    if(article_custom_field('product-type') == 'book') return $productType = 'book'; 

} else {
    $productType = 'eye-open';
}

而且:

if(article_custom_field('product-type') === 'cd') {
    $productType = 'cd';
} elseif(article_custom_field('product-type') === 'video') {
    $productType = 'facetime-video';
} elseif(article_custom_field('product-type') === 'audio') {
    $productType = 'headphones';
} elseif(article_custom_field('product-type') === 'download') {
    $productType = 'save';
} elseif(article_custom_field('product-type') === 'book') {
    $productType = 'book';
} else {
    $productType = 'eye-open';
}

旨在改变这一点:

<span class="product-type">
   <img src="<?php echo theme_url('/assets/glyphicon-' . $productType . '.png'); ?>" width="25" alt="Product Type" class="img-responsive">
   <?php echo article_custom_field('product-type'); ?>
</span>

关于我做错了什么以及为什么这段代码对我不起作用的任何想法?无论我将'article_custom_field('product-type')设置为什么,我仍然会'睁眼'。这是什么交易?

这是'article_custom_field()'函数:

function article_custom_field($key, $default = '') {
    $id = Registry::prop('article', 'id');

    if($extend = Extend::field('post', $key, $id)) {
        return Extend::value($extend, $default);
    }

    return $default;
}

2 个答案:

答案 0 :(得分:2)

您的初始if条款正在测试该值是否为空白,否则它将返回“开启”状态,因此您将始终获得“睁眼”状态。值。

尝试使用switch-case结构并在函数末尾返回。

$cField = article_custom_field('product-type');
switch (trim($cField)){
    case 'cd':
        $productType = 'cd';
    break;
    case 'audio':
        $productType = 'headphones';
    break;
    case 'video':
        $productType = 'facetime-video';
    break;
    case 'download':
        $productType = 'save';
    break;
    case 'book':
        $productType = 'book';
    break;      
    default:
        $productType = 'eye-open';
    break;
}
return $productType;

答案 1 :(得分:0)

花了很多年的时间试图找出这是什么,

然后它刚刚发生在我身上。

我FORGOT将switch / if语句放在while循环中。 DUH - 新秀的错误!