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 =,我不会收到任何错误。代码中有什么问题?我可以设置这样的变量吗?

4

5 回答 5

1

if因为赋值的值是无效的。不知道,你从哪里得到这个。但是,您可以在此处使用三元运算符

$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);
于 2012-08-01T09:51:30.163 回答
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);
}​​​​​​​
于 2012-08-01T09:51:12.190 回答
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';
于 2012-08-01T09:51:23.127 回答
0

从外观上看,您将普通 if 语句与三元运算符混合在一起,看起来应该像这样$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);
于 2012-08-01T09:51:51.707 回答
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);
于 2012-08-01T09:52:15.980 回答