我在使用此语句时出现语法错误
$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 :(得分: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()
- 调用在两种情况下都是相同的
$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);
答案 1 :(得分: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);
}
答案 2 :(得分: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';
答案 3 :(得分: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);
答案 4 :(得分: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);