2017-08-15 70 views
-1

我想要使用IF语句,如果变量$credit不是空的。但是,我得到一个解析错误。任何人都可以请我的语法帮忙吗?如果声明里面Html

$credit = get_field('fl_credit', $image['id']); 
    return '<div class="kalim"><img title="' . 
     esc_attr(sprintf(the_title_attribute('echo=0'))) . 
    '" alt="' . esc_attr(sprintf(the_title_attribute('echo=0'))) . 
    '" src="' . $image['url'] . '" /><div class="kalca">' . 
    $image['caption'] . '</div>' . 
    if($credit) {'<div class="kalcr">Credit:' . $credit . '</div></div>' }; 
+3

*什么是分析错误? – msanford

+0

你不能连接一个字符串和一个'if'。 'if'不返回值。您需要一个表达式,如三元运算符(..?..:)或返回值的函数。 – Jaime

+0

ok注意到,我不会再这样做,但我相信我的问题是合法的,为什么downvote? –

回答

3

不知道的错误,我建议做短如果这样:

$credit = get_field('fl_credit', $image['id']); 
    return '<div class="kalim"><img title="' . 
     esc_attr(sprintf(the_title_attribute('echo=0'))) . 
    '" alt="' . esc_attr(sprintf(the_title_attribute('echo=0'))) . 
    '" src="' . $image['url'] . '" /><div class="kalca">' . 
    $image['caption'] . '</div>' . 
    (!empty($credit) ? '<div class="kalcr">Credit:' . $credit . '</div></div>': '') ; 

你可以看到更多的here

+1

有趣的是,这被称为[三元](http://php.net/manual/en/language.operators.comparison.php):) - 此外,你不应该发布的答案,直到你真的知道什么问题是。如果你错了,这很容易让你失望。 – GrumpyCrouton

+0

好的,谢谢杰夫,这很有道理! –

+0

@GrumpyCrouton感谢在这两种情况下的澄清。 – Jeff

0

检查这一点,如果它帮助你

<?php 
    $credit = get_field('fl_credit', $image['id']); 
    $return_data = '<div class="kalim"><img title="'.esc_attr(sprintf(the_title_attribute('echo=0'))) . '" alt="' . esc_attr(sprintf(the_title_attribute('echo=0'))) . '" src="' . $image['url'] . '" /><div class="kalca">' . $image['caption'] . '</div>'; 
    if(!empty($credit)){ 
     $return_data .= '<div class="kalcr">Credit:' . $credit . '</div>'; 
    } 
    $return_data .= '</div>'; 
    return $return_data; 
?>