読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

奇数のみ出力したい場合の比較演算に注意

PHP

スポンサードリンク

http://www.flickr.com/photos/26442111@N00/116648637
photo by quinn_higurashi


本職プログラマーからすると、あたりまえだよ! って怒られそうな話。



たったこんだけのことなんだけど。。。

// 何かしらループしている途中
// $countが偶数であることをチェック
if ($count % 2 == 0) {
	// 偶数配列の値
    echo $value;
}
// ループの最後でカウントが増えていく
$count++;


で、今度は奇数を取得してほしいって仕様が変った。


>>>>突然の仕様変更<<<<<


簡単かんたーん♪ と、調子載っていた俺

// 何かしらループしている途中
// $countが奇数であることをチェック
// 逆だからこうすればいいでしょ!
if (! $count % 2 == 0) {
	// 奇数配列の値
    echo $value;
}
// ループの最後でカウントが増えていく
$count++;

で、うまく動かなくなる・・・・orz


なんでだろ?


いろいろ試行錯誤した結果がこれ

// 何かしらループしている途中
// $countが奇数であることをチェック
// 計算する順序を与えてあげる
if (! ($count % 2) == 0) {
	// 奇数配列の値
    echo $value;
}
// ループの最後でカウントが増えていく
$count++;


つまりは、

  1. ()の中を先に計算する
  2. ()の結果と 0 が == であるか。
  3. 2の結果に ! を与える


という、順序を与えればよかった。


あー、どうでもいいことでハマったぜorz