-2

switchPHPで使用して複数の値を返すにはどうすればよいですか?

以下の例では、 product1に対してcategory1、category2、category3を返そうとしていますが、以下のコードでは、ステートメントは 1 つの値しか返しません。switch

switch ($product) {
    case "product1":
        $category = "category1";
        break;
    case "product1":
    case "product2":
        $category = "category2";
        break;
    case "product1":
    case "product2":
    case "product3":
        $category = "category3";
        break;
}

に複数の値を追加する方法はあります$categoryか? そして、後でタグとして使用できるように、値をコンマで区切っておきたいと思います。

4

2 に答える 2

3

複数の値を返したい場合は、配列を使用する必要があります。

// We're going to store or multiple categories into an array.
$categories = array();
switch ($product) {
    case "product1":
        $categories[] = "category1";
        // This case label doesn't have a break statement, and thus it 'falls through'
        // to the next case label, which is "product2". That code block will also be
        // executed.
    case "product2":
        $categories[] = "category2"
    case "product3":
        $categories[] = "category3";
}

このスニペットはbreakcase コード ブロックの最後にある s を省略しているため、 switch case fallthrough$product == "product1"を使用していますproduct2

の場合$product == "product1"、は値との$category配列です。category1category2category3

次に、次のように、コンマで区切られた配列内の文字列を連結できます。

echo implode(",", $categories);

注意: 場合によっては、ケース フォール スルーを使用すると便利ですが、エラーが発生しやすいことに注意してください。フォールスルーが意図されている場合は、コメントを追加して、このフォールスルーが意図的であることを他のプログラマーに通知することを強くお勧めします。そうしないと、あなたがうっかり忘れてしまったと思われるかもしれませんbreak

于 2014-06-05T11:40:17.010 に答える