2012-11-09 59 views
0

我正在切斷某個地方的信息,這給了我團隊名稱。如果我做echo $HomeTeam;,我會得到「Man Utd」的價值。簡單的循環無法正常工作

但是,當我這樣做..它不起作用(顯示空白)。

$PlayerName = "Robin Van Persie"; //just to test that it's working 
switch($PlayerName) 
    { 
    case "Robin Van Persie": 
     if ($HomeTeam == "Man Utd") { echo $HomeTeam; } 
     break; 
    default: echo "Player not in the list"; break; 
    } 

這顯示爲空白...任何想法爲什麼?我嘗試添加$HomeTeam = strval($HomeTeam);將其轉換爲字符串,但沒有任何區別。

+0

嘗試'var_dum P($ PlayerName,$ HomeTeam)'。確保字符串長度恰好是他們應該的。 –

+0

和'其他',如果'回聲消息。我認爲案件正在起作用,但'如果'不是。 –

+0

順便說一句在真實世界中,硬編碼會變得很大且難以維護,因此您最好將數據存儲在數據庫中,然後您可以簡單地忽略此轉換語句。 –

回答

0

$HomeTeam變量未設置,這就是爲什麼打印時它會返回空白。設置值爲這樣的&它應該工作。

$PlayerName = "Robin Van Persie"; //just to test that it's working 
$HomeTeam = "Man Utd"; 
switch($PlayerName) 
    { 
    case "Robin Van Persie": 
     if ($HomeTeam == "Man Utd") { echo $HomeTeam; } //Man Utd 
     break; 
    default: echo "Player not in the list"; break; 
    } 
+0

打印時不返回空白。如果'echo $ HomeTeam;'沒有if循環,它會返回「Man Utd」,但如果它在if循環中則不會。 – Cully

0

if ($HomeTeam == "Man Utd")沒有別的設爲發生,所以$ HomeTeam必須不等於"Man Utd"

+0

嗯..這就是事情..當我回應出來(沒有如果循環),它確實顯示爲「Man Utd」,所以我在考慮它不存儲爲字符串或其他東西。 – Cully

+0

是的,那可能就是這樣。你可以檢查它是否等於「曼聯」轉換爲字符串時? – jackcogdill

0

試試這個

$PlayerName = "Robin Van Persie"; //just to test that it's working 
switch($PlayerName){ 
    case "Robin Van Persie": 
     $HomeTeam ? print($HomeTeam) : print("HomeTeam is not set"); 
    break; 
    default: echo "Player not in the list"; break; 
} 
+0

這反映了$ HomeTeam的價值,所以它看起來像它會起作用。 '$ HomeTeam是什麼?打印($ HomeTeam)'雖然?如果要循環捕捉每個團隊,我不知道如何使它與您列出的代碼一起工作。謝謝。 – Cully

+0

@Cully'print'幾乎就像'echo'函數,而'$ HomeTeam? print($ HomeTeam):print(「HomeTeam沒有設置」);'是檢查var是否等於true的簡寫,'$ var? #do東西如果是真的:#do其他東西,如果假' –

+0

@Cully你如何檢索球隊/球員列表? –

0

如果你要硬編碼,而不是存儲在你的價值觀數據庫也許這種使用數組的方法會令你感興趣:

$search = "Robin Van Persie"; 

//Your data array, easyier to add to no 
$teams = array(
    'Manchester United'=>array('Robin Van Persie', 
           'Wayne Rooney', 
           ), 

    'Arsenal'=>array('Theo Walcott', 
        'Nicklas Bendtner', 
        ),    
); 

$result=null; 
foreach($teams as $team=>$players) { 
    if(in_array($search,$players)) { 
     $result = $team; 
    } 
} 
//Robin Van Persie's team is Manchester United 
echo ($result != null) ? $search.'\'s team is '.$result : 'Team for '.htmlentities($search).' not found.';