0

嗨,伙计们希望您能提供帮助:

我正在尝试阅读作为体育调度程序一部分的 xml。

下面是我正在阅读的 XML 示例。到目前为止,使用 Simpmle XML 我已经能够正确读取游戏的所有属性。但是在示例中,您可以看到 homescore 和 awayscore 只会显示为“”,直到输入分数。这很好,因为我想放一个简单的 if 语句,说如果分数为空,则回显“-”。这样观众就知道他们还没有玩。

<Fixture Id="404" FixtureName="Round 4" ResourceId="4" PlayingAreaName="Court C" VenueId="2" VenueName="Adelaide Indoor Sports Centre" MapLink="" HomeTeamId="212" HomeTeam="THE SHINERS" HomeTeamScore="29" HomeTeamForfeit="False" AwayTeamId="203" AwayTeam="SANDBAR WARRIORS" AwayTeamScore="8" AwayTeamForfeit="False" Duration="40" Umpires="" CrossLeague="False" DivisionName="Division 1" CalendarColour="FFFF00" ResourceOrder="3" DateTime="13/03/2012 21:20"/>
<Fixture Id="406" FixtureName="Round 4" ResourceId="5" PlayingAreaName="Court D" VenueId="2" VenueName="Adelaide Indoor Sports Centre" MapLink="" HomeTeamId="210" HomeTeam="WE THOUGHT IT WAS A DISCO" HomeTeamScore="" HomeTeamForfeit="False" AwayTeamId="206" AwayTeam="AVERAGE JOE'S" AwayTeamScore="" AwayTeamForfeit="False" Duration="40" Umpires="" CrossLeague="False" DivisionName="" CalendarColour="FFFF00" ResourceOrder="4" DateTime="13/03/2012 21:20"/>

但是“”(空属性)总是返回零。有小费吗?我对php比较陌生

4

2 回答 2

0

如果我理解正确,您想区分"""0"。因为 PHP 尽可能地尝试猜测您要比较的类型,所以语句喜欢$foo == 0并且$foo == ''不会这样做,因为它会猜测您想要比较数字,并将""其视为0.

有几种方法可以解决这个问题:

由于您使用的是 SimpleXML,我想代码看起来像:

if ( (string)$fixture['HomeTeamScore'] === '' )
{
    echo '-';
}
else
{
    echo (string)$fixture['HomeTeamScore'];
}
于 2012-07-19T00:06:40.420 回答
0

您可以使用 empty() 函数。

if (empty($fixture['HomeTeamScore'])) {
    echo "-";
}

PHP:空 - 手动

于 2012-06-08T00:47:51.223 回答