&& || and or まぜるな危険

9,239 views
9,099 views

Published on

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,239
On SlideShare
0
From Embeds
0
Number of Embeds
6,323
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

&& || and or まぜるな危険

  1. 1. && ¦¦ and orまぜるな危険
  2. 2. 発端:とある魔法少女のフレームワーク
  3. 3. 超訳:コーディングガイドラインでand / or とか推奨したらあかんで
  4. 4. and/or で書いてみる
  5. 5. <?phpfunction echoYesOrNo($a, $b){if ($a == 1 or $b == 2) {echo "yesn";}else {echo "non";}}echoYesOrNo(0, 2);
  6. 6. yes
  7. 7. リファクタリング: Extract Variable
  8. 8. <?phpfunction echoYesOrNo($a, $b){$ab = $a == 1 or $b == 2;if ($ab) {echo "yesn";}else {echo "non";}}echoYesOrNo(0, 2);
  9. 9. no
  10. 10. ( ゚Д゚)ハァ?
  11. 11. && ¦¦and or=演算子の優先順位が=を挟んで前と後だと!?
  12. 12. ($ab = ($a == 1)) or ($b == 2);$ab = $a == 1 or $b == 2;
  13. 13. 引用:Use of ¦¦ is discouraged as its clarity on someoutput devices is low (looking like the number11 for instance).
  14. 14. 超訳:ヘボい画面だと ¦¦ 見にくいじゃん(ぶっちゃけ数字の11に見えるよね)
  15. 15. ( ゚Д゚)ハァ?
  16. 16. フォント変えろや
  17. 17. <?phpfunction echoYesOrNo($a, $b){$ab = $a == 1 || $b == 2;if ($ab) {echo "yesn";}else {echo "non";}}echoYesOrNo(0, 2);こうすると...
  18. 18. yes
  19. 19. 結論•and !== &&•or !== ¦¦•論理演算は && と ¦¦ を使え•ヘボいフォントでプログラムすんな
  20. 20. One More Thing
  21. 21. どれ、ワシが正しいand / or の使い方を見しちゃる
  22. 22. 返り値:成功した場合にファイルポインタリソース、エラー時に FALSE を返します。皆さんおなじみPHPのdisられポイントですね(誰ですかいまPSR-1って言ったの)
  23. 23. $f = @fopen($filePath, r)or die("No such file.n");こう使います
  24. 24. OR DIE「さもなくば、死ね」
  25. 25. $f = @fopen($filePath, r)or die("No such file.n");orの左がtrueに確定すればそれ以降を評価する必要がない
  26. 26. $f = @fopen($filePath, r);while($f and $str = fgets($f)) {echo $str;}こう使います2
  27. 27. TRUE AND ...「真実、そして...」
  28. 28. $f = @fopen($filePath, r);while($f and $str = fgets($f)) {echo $str;}andの左がfalseに確定すればそれ以降を評価する必要がない
  29. 29. $f = @fopen($filePath, r);while($f and $str = fgets($f)) {echo $str;}&&じゃないからカッコなしで=が使える
  30. 30. 意図して使い分けろ!!PHP力とはこういうことさ
  31. 31. 結論•and と or で求めるものは true/falseではない•and = そして演算子•or = さもなくば演算子•で、読みやすいか? これ...
  32. 32. 読みにくいPHPはやめましょう

×