2015-11-14 42 views
1

嗨我不知道這是否可以在開關櫃中完成。這裏是我想要的示例代碼開關聲明兩個情況相同的條件和不同的條件

switch($name) 
case "Dog": 
    $pic = "/images/itscute.jpg"; 
    $info ="four legs"; 
    break; 
case "Cat": 
    $pic = "/images/cat.jpg"; 
    $info ="four legs"; 
    break; 
case "bird": 
    $pic = "/images/bird.jpg"; 
    $info = "two legs"; 
    break; 

現在您可以看到狗和貓都具有相同的$ info值。 是否有可能對我做$信息只由一個人這樣

switch($name) 
case "Dog": 
case "Cat": 
    $info ="four legs"; 
    break; 
case "bird": 
    $info = "two legs"; 
    break; 

,有一次我不知道如何放置$ PIC如果這樣的代碼。

編輯:$ pic在狗不是「/images/dog.jpg」;

EDIT2:增加了更多的情況下,更清楚的問題

+0

什麼語言?它應該添加爲標籤。 –

+0

添加..對不起,我認爲這是不必要的bcoz我認爲大多數語言都有相同的開關 – blerrr

+0

10有些語言允許通過,但其他語言不允許。但通常在這種情況下,您將創建兩個switch語句。 – tofutim

回答

1

對於任何變量包含相同的值爲什麼使用開關呢?只需在switch語句之前定義這些變量即可。僅將switch語句用於包含不同值的變量。

編輯

在這種情況下,沒有理由爲什麼你不能使用2條switch語句,像這樣:

switch(strtolower($name)) 
{ 
case "dog": 
    $pic = "/images/itscute.jpg"; 
    break; 
case "cat": 
    $pic = "/images/cat.jpg"; 
    break; 
case "bird": 
    $pic = "/images/bird.jpg"; 
    break; 
} 
switch(strtolower($name)) 
{ 
case "dog": 
case "cat": 
    $info = "four legs"; 
    break; 
case "bird": 
    $info = "two legs"; 
    break; 
} 

我不建議你使用用strtolower(),像我示例顯示,以避免任何情況下的問題。您可以根據需要使用任意數量的開關語句。 至於把「狗」變成「狗的」只是添加「的」變量,如下所示: $name = ucwords($name . "'s");

+0

其實真正的代碼比這個複雜得多,我不知道如何簡單地解釋它。有4個案例。其中2個變量具有相同的值,但也具有相同的變量和不同的值。另外兩種情況完全不同的值,但仍然是相同的變量。最後,我需要在一個句子中使用這些變量。所以如果案件是狗,句子顯示狗的。 – blerrr

+0

看看我的編輯 – blerrr

+0

@blerrr看我上面的編輯。 – CharlesEF

1

由於$pic兩種情況之間的差異是依賴於$name值,你可以使用$name本身:

switch($name) { 
    case "Dog": 
    case "Cat": 
     $pic = "/images/" . strtolower($name) . ".jpg"; 
     $info ="four legs"; 
     break; 
} 
+0

是啊,起初我曾這麼想過,但如果它像我的編輯代碼呢?抱歉只是意識到我給了錯誤的例子hehehe:D – blerrr

+0

看看nmy編輯@ hjpotter92 – blerrr