2017-08-15 100 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; 
?>