2012-08-01 50 views
0

我得到一個語法錯誤,這種說法如果語句設置變量,但語法錯誤

$catlist = if (function_exists('put_cat_icons')) { 
put_cat_icons(wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id.'&echo=0')); 
} else { 
wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id); 
}​​​​​​​ 

如果我刪除$catlist =我沒有得到任何錯誤。代碼中有什麼問題?我可以設置這樣的變量嗎?

回答

0

我建議重新安排你的代碼有點

if (function_exists('put_cat_icons')) { 
    $catlist = put_cat_icons(wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id.'&echo=0')); 
} else { 
    $catlist = wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id); 
}​​​​​​​ 
0

您不能分配到的狀況的結果 - 它們必須獨立。可能你的意思是:

if (function_exists('put_cat_icons')) { 
    $catlist = put_cat_icons(wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id.'&echo=0')); 
} else { 
    $catlist = wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id); 
}​​​​​​​ 

你可能會混淆普通和三元條件,後者允許分配。

$something = 1 < 2 ? 'foo' : 'bar'; 
1

if作爲分配的值是無效的。不知道,你從哪裏得到這個信息。但是,您可以使用這裏的ternary operator

$catlist = function_exists('put_cat_icons') 
    ? put_cat_icons(wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id.'&echo=0')) 
    : wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id); 

而且,當你看到你的代碼,你可能會意識到,該wp_list_categories() -call是一樣的在這兩種情況下

$catlist = wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id); 
if (function_exists('put_cat_icons')) $catlist = put_cat_icons($catlist); 
0

從外觀上來看它,你if語句混合普通與ternary operator這應該是這個樣子$someVar = (condition) ? "TRUE VALUE" : "FALSE VALUE";

使用你的情況三元運營商將是這個樣子:

$catlist = (function_exists('put_cat_icons')) ? 
    put_cat_icons(wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id.'&echo=0')) : 
    wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id); 
0

我不這是設置變量的正確方法。您是否試圖做到這一點

$catlist = (function_exists('put_cat_icons')) ? put_cat_icons(wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id.'&echo=0')): 
wp_list_categories('echo=0&orderby=id&show_count=1&title_li=&child_of=' . $cat_id);