0

我正在调用一个返回数组的函数,但我遇到了这个错误:Can't use function return value in write context

很多人得到这个错误,但我看不出我做错了什么。

这是功能:

function select_image_styles_from_category($category)
{
$image_details();
switch($category)
{
    case 'twine':
            $image_details[0] = get_bloginfo('template_directory') . '/images/titles/blog-twine.png';
            $image_details[1] = 'on-top';
            break;
    case 'scrapbook':
            $image_details[0] = get_bloginfo('template_directory') . '/images/blog/papers.png';
            $image_details[1] = 'on-top';
            break;
    default:
            $image_details[0] = 'stuff';
            $image_details[1] = 'things';
}

return $image_details;

}

然后我从另一个函数调用这个函数,这是它出错的那一行(这个函数中有更多,但它对问题的其余部分来说是多余的):

function add_img_styles_to_special_categories($the_content_string, $category)
{
        //erroring line
    $image_details() = select_image_styles_from_category($category);
}

我错过了演员表吗?我需要显式构造一个数组吗?我把案件陈述作废了吗?我真的看不出我错过了什么。你们中的任何漂亮可爱的人有任何指示吗?

4

2 回答 2

5

$image_details()是一个函数调用,您不能写入函数。您只想将其返回给调用者吗?

return select_image_styles_from_category($category);
于 2012-07-13T09:50:58.323 回答
1

当您只想分配一个变量时,您编写的代码看起来像是在调用一个函数。

$image_details();

表示“取 的值$image_details,将其解释为函数的名称并调用该函数”。

因此,当您(显然错误地)放置额外的括号并写下

$image_details() = select_image_styles_from_category($category);

编译器将其读取为“获取 的值$image_details,将其解释为函数的名称,调用该函数并将结果分配select_image_styles_from_category()给它”。但是您不能将任何内容分配给函数的结果(您只能将其存储在某处),因此会出现错误。

于 2012-07-13T09:52:57.167 回答