0

配列を返す関数を呼び出していますが、次のエラーが発生します: 書き込みコンテキストで関数の戻り値を使用できません

多くの人がこのエラーを受け取りますが、何が間違っているのかわかりません。

これは機能です:

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 に答える