0

こんにちはみんなあなたが助けてくれることを願っています:

スポーツ スケジューリング プログラムの一部である xml を読み込もうとしています。

私が読んでいる XML のサンプルを以下に示します。これまでのところ、Simple XML を使用して、ゲームのすべての属性を正しく読み取ることができました。ただし、この例では、スコアが入力されるまで、ホームスコアとアウェイスコアが「」としてのみ表示されることがわかります。スコアが null エコー "-" であるかどうかを示す単純な 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

これに対処するには、いくつかの方法があります。

  • の代わりに(またはの代わりに)===演算子を使用します( http://uk3.php.net/manual/en/language.operators.comparison.phpを参照)==!==!=
  • を使用して文字列の長さをチェックし、文字列strlenが空かどうかを確認します
  • is_intis_stringなどを使用して変数の型を確認します-独自の型を返すSimpleXMLから値を取得した場合、これはおそらく機能しません

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 に答える