2016-08-01 3 views
2

私はAPIからの出力を持っています。今、私は、出力はFRの言語に翻訳したいPHPスイッチの問題

<td><?php echo $fixture->homeTeamName; ?></td> 

:中ウォールソールFC:

<?php foreach ($soccerseason->getFixturesByMatchday(1) as $fixture) { ?> 
       <tr> 
        <td><?php echo $fixture->homeTeamName; ?></td> 
        <td>-</td> 
        <td><?php echo $fixture->awayTeamName; ?></td> 
        <td><?php echo $fixture->result->goalsHomeTeam; ?></td> 
        <td>:</td> 
        <td><?php echo $fixture->result->goalsAwayTeam; ?></td> 
       </tr> 
<?php } ?> 

これは正常に動作し、それはのような名前を出力し

:私はPHPのページのヘッダーにこのPHPスイッチをしようとしていますが、私は空白の画面を取得

代わりに「ウォールソールFC」のように「エキップルージュ」

switch ($teamName) { 
    case $fixture->homeTeamName['Walsall FC']: 
     echo "équipe rouge"; 
     break; 
} 

あなたのご協力ありがとうございます。

switch ($fixture->homeTeamName) { 
    case 'redBlackpool FC': 
     echo "équipe rouge"; 
     break; 
} 

をしかし、多分あなたはテンプレートにあまりにも多くのロジックを入れている:

+1

あなたは、 "API" からの出力を持って書きます。どのようなAPIですか?また、大きなコードから2番目のスニペットを取りましたか?もしそうなら、その大きなコードを共有することはできますか? – Julian

+0

json_decodeの外部APIですが、2番目のスニペットは単なるテストです! – Isabella

+1

スニペット1とスニペット2は同じPHPファイル内にありますか?もしそうなら、PHPファイル全体を表示できますか?さもなければ、*両方の* PHPファイル(少なくとも関連する部分)を表示できますか? – Julian

答えて

5

あなたはcase後の括弧内の変数と値を入れる必要がありますか?

switch ($fixture->homeTeamName) { 
    case 'redBlackpool FC': 
     $translatedHomeTeamName = "équipe rouge"; 
     break; 
} 

をして、テンプレートに:おそらく、あなたは何ができる場合

<td><?php echo $translatedHomeTeamName; ?></td> 

あなたは、あなたが行うことができ、<td>の内容を変更することはできません。

switch ($fixture->homeTeamName) { 
    case 'redBlackpool FC': 
     $fixture->homeTeamName = "équipe rouge"; 
     break; 
} 

上記は、<td>が印刷される前に実行する必要があります。基本的に私はちょうど、<td>の中に全体のswitch文を入れないように勧めています。ウルコード整頓...

編集 - 編集した質問に基づいて

あなたはforeachループの内側にあるので、あなたがそうのように、foreachの内部の用語を翻訳する必要があります。

<?php foreach ($soccerseason->getFixturesByMatchday(1) as $fixture) { 

     switch ($fixture->homeTeamName) { 
      case 'redBlackpool FC': 
       $fixture->homeTeamName = "équipe rouge"; 
       break; 
      case 'blueBlackpool FC': 
       $fixture->homeTeamName = "équipe bleu"; 
       break; 
      default: 
      // here you can do something in case the team isn't any of the above. 
     } 
?> 
      <tr> 
       <td><?php echo $fixture->homeTeamName; ?></td> 
       <td>-</td> 
       <td><?php echo $fixture->awayTeamName; ?></td> 
       <td><?php echo $fixture->result->goalsHomeTeam; ?></td> 
       <td>:</td> 
       <td><?php echo $fixture->result->goalsAwayTeam; ?></td> 
      </tr> 
<?php } ?> 

更新 - 機能付きの例 この機能(別のファイルに入れてからメインスクリプトに組み込むことができます):

function translateTeam($homeTeamName) 
    switch ($homeTeamName) { 
     case 'redBlackpool FC': 
      $homeTeamName = "équipe rouge"; 
      break; 
     case 'blueBlackpool FC': 
      $homeTeamName = "équipe bleu"; 
      break; 
     default: 
     // here you can do something in case the team isn't any of the above. 
    } 

    return $homeTeamName; 
} 

foreachループ:

// Include the php script that contains translateTeam() here... 

<?php foreach ($soccerseason->getFixturesByMatchday(1) as $fixture) { ?> 
      <tr> 
       // In the line below we call the function and pass the English name to it... 
       <td><?php echo translateTeam($fixture->homeTeamName); ?></td> 
       <td>-</td> 
       <td><?php echo $fixture->awayTeamName; ?></td> 
       <td><?php echo $fixture->result->goalsHomeTeam; ?></td> 
       <td>:</td> 
       <td><?php echo $fixture->result->goalsAwayTeam; ?></td> 
      </tr> 
<?php } ?> 
+0

どのような出力 '​​<?php echo $ fixture-> homeTeamName; ?> ' – Isabella

+0

編集済みの回答を参照してください(最後の段落) – mastazi

+0

最初の回答は独立してうまくいきました: 'switch($ fixture-> homeTeamName){ case' redBlackpool FC ': echo"équiperouge "; 休憩。 } $ fixture-> homeTeamName = "redBlackpool FC"; 'しかし、TDの変更がありませんでした。第二の回答 – Isabella