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

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

10,191 views

Published on

  • Be the first to comment

&& || 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はやめましょう

×