PHP切换问题

Isa*_*lla 3 php api switch-statement

我有API的输出:

<?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 } ?>
Run Code Online (Sandbox Code Playgroud)

这工作正常,它输出如下名称:Walsall FC in:

<td><?php echo $fixture->homeTeamName; ?></td>
Run Code Online (Sandbox Code Playgroud)

现在我希望将输出转换为FR语言,例如"équiperouge"而不是"Walsall FC"

我在php页面的标题中尝试这个PHP Switch,但是我得到了空白屏幕:

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

感谢您的帮助.

mas*_*azi 5

您应该将变量放在括号内,并将值放在case:

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

但也许你在模板中加入太多逻辑?也许你可以这样做:

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

然后在模板中:

<td><?php echo $translatedHomeTeamName; ?></td>
Run Code Online (Sandbox Code Playgroud)

如果您无法修改其内容<td>,那么您可以这样做:

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

上面应该在<td>打印之前执行...基本上我只是建议你不要把整个switch语句放在里面,<td>这样你就可以保持你的代码整洁......

编辑 - 基于编辑过的问题

因为你在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 } ?>
Run Code Online (Sandbox Code Playgroud)

更新 - 带功能示例该功能(您可以将其放在单独的文件中,然后将其包含在主脚本中):

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;
}
Run Code Online (Sandbox Code Playgroud)

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 } ?>
Run Code Online (Sandbox Code Playgroud)