-4
    $odd= true;
echo ($odd == true) ? '<tr class="odd_row">' : '<tr class="even_row">';
    $odd = !$odd; 

誰でもこのコードを説明できますか?

4

3 に答える 3

10

この式は三項演算子[a] ? [b] : [c]と呼ばれます。これは、次の関数と同じです。

function ternary($a, $b, $c) {
  if ($a)
    return $b;
  else
    return $c;
}

ただし、三項演算子の引数は遅延評価されます (つまり、実際には[b]andの 1 つだけが実行されます)。[c]

$odd = !$odd$oddと の間trueでの値を切り替えますfalse

このコードは、クラスodd_row とを交互に持つテーブル行を出力するループ内で使用されている可能性がありeven_row、CSS を使用して異なるスタイルを設定できます。

于 2013-06-04T08:31:06.937 に答える
3

これの意味は

if ($odd == true){
    echo '<tr class="odd_row">';
}else{
    echo '<tr class="even_row">';
}

三項演算子と呼ばれる

次に$odd = !$odd;、この変数の値によって「反転」されます。次の行を「均等」にするために行われたと思います。

于 2013-06-04T08:29:32.820 に答える
0

これは、$odd変数をブール値に設定していますtrue

$odd= true;

これは、三項演算子と呼ばれるものを使用して文字列を出力します。true の場合$oddは最初のビットを出力し、そうでない場合は 2 番目のビットを出力します。$odd直前に true に設定したため、常に最初のビットが出力されます

echo ($odd == true) ? '<tr class="odd_row">' : '<tr class="even_row">';

これは(not)に設定$oddされるため、ブール値が false に反転します $odd = !$odd;!$odd

文字通りの説明で申し訳ありませんが、徹底したかったのです

于 2013-06-04T08:30:32.377 に答える