2016-08-01 17 views
2

Ich habe Ausgabe von API:PHP Switch Ausgabe

<?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 } ?> 

dies gut funktioniert, gibt es Namen wie: FC Walsall in:

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

Jetzt möchte ich die Ausgabe in FR Sprache übersetzt werden solche „équipe rouge“ anstelle von „Walsall FC“

ich diesen PHP-Schalter in der Kopfzeile der PHP-Seite versuchen, aber ich bekomme leeren Bildschirm:

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

Ihre Hilfe wird geschätzt.

+1

Sie schreiben Sie eine Ausgabe von "API" haben. Welche API? Hast du deinen zweiten Ausschnitt aus einem größeren Code entnommen? Wenn ja, könnten Sie diesen größeren Code teilen? – Julian

+0

externe API mit json_decode, das zweite Snippet ist nur ein Test! – Isabella

+1

Sind Snippet 1 und Snippet 2 in der gleichen PHP-Datei? Wenn ja, könnten Sie die gesamte PHP-Datei anzeigen? Könnten Sie sonst * beide * PHP-Dateien (zumindest die relevanten Teile) anzeigen? – Julian

Antwort

5

Sie sollten die Variable in Klammern setzen und den Wert nach case:

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

Aber vielleicht zu viel Logik in die Vorlage, die Sie setzen? Vielleicht könnten Sie tun:

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

und dann in der Vorlage:

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

Falls Sie den Inhalt des <td> nicht ändern können, dann könnten Sie tun:

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

Das obige sollte ausgeführt werden, bevor die <td> gedruckt wird ... Grundsätzlich würde ich nur vorschlagen, dass Sie nicht die gesamte Switch-Anweisung in die <td> setzen, damit Sie yo behalten können ur-Code ordentlich ...

Bearbeiten - basierend auf bearbeitete Frage

Da Sie in einer foreach Schleife sind, dann müssen Sie den Begriff in der foreach zu übersetzen, etwa so:

<?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 } ?> 

Update - Beispiel mit Funktion Die Funktion (Sie können es in eine separate Datei einfügen und dann in das Hauptskript aufnehmen):

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; 
} 

Die foreach Schleife:

// 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

Was ist mit dem Ausgang ' homeTeamName; ?> ' – Isabella

+0

Siehe die bearbeitete Antwort (letzter Absatz) – mastazi

+0

Die erste Antwort funktionierte gut als Standalone:' switch ($ fixture-> homeTeamName) { Fall 'redBlackpool FC': echo "équipe rouge"; Pause; } $ fixture-> homeTeamName = "redBlackpool FC"; 'aber keine Änderungen in TD mit translatedHomeTeamName der zweiten Antwort – Isabella