20210420・21_アウトプット(php)

アウトプット画像

やったこと

  • 初めてのphp(3章ロジックと繰り返し)


1%の成長

  • 初見で見た時に「?」と感じた数値や文字列の比較について理解できた。


新しい発見

ASCIIってなんだ?

  • American Standard Code for Information Interchangeの略で、ASCII(アスキー)と読む。
  • 半角英数字と記号のみ。以前はアルファベットを使えれば事足りたが、それだと日本語が❌なので、その後アスキーコードにひらがなやカタカナ、漢字を追加した新しい表を作った(なので、UTF8なのか💡)
  • 「文字」と「文字に割り当てた番号」を「符号化文字集合」という。
  • 「文字に割り当てた番号」と「実際にコンピュータが扱う数字」を「文字符号化形式」という。(アスキーコードは、「符号化文字集合」と「無事符号化形式」が同一)
比較で小さい順 内容
数字
英語(大文字)
英語(小文字)

www3.nit.ac.jp

なるほど!
  • phpでは文字の比較ができる。その時に混乱したのがアルファベット順よりも「数字」「大文字の英語」「小文字の英語」が優先されること。
  • 例えば、「W」と「a」の比較だと、「a」の方がアルファベット順だと1番だから前かな?と思いきや、「大文字の英語」の方が優先されるので「W」→「a」と判断される。
<?php
// Your code here!
if ('W' < 'a') {
    print 'aの方が後ろだよ';
} else {
    print 'Wの方が後ろだよ';
}
?>
👇実行後👇
aの方が後ろだよ
様々な比較
比較対象 状況 こう比較される 結果
"x54321"と"x5678" 文字列+数字 3番目にある46の比較 "x54321"の方が小さい!
"54321"と"5678" 文字列の数字 数値に置き換えられ54321と5678の比較 5678の方が小さい
'6 pack'と'55 card stud' 数字+文字列 1番目にある65の比較 '55 card stud'の方が小さい
'6 pack'と55 数字入り文字列と数字 6が数値に置き換えられ655の比較 '6 pack'の方が小さい

つまり、

  • その対象は、比較対象ともに「文字列と数字ミックス」か? 
    👉一文字目の「数字」「大文字」「小文字」で判断。
  • その対象は、比較対象ともに「数字(文字列の数字含む)」または、比較対象片方が「数字(文字列の数字含む)」か? 
    👉数の大きさで判断。 と理解。


感想

  • 整理できてスッキリ。(Rubyの時は、そもそもデータ型が異なるものは違うと判断すると思うので、この概念について学んだ時、初めはどういう意味?って思った)
  • なんで、片方数字だと両方数字の比較になることについて、どういうところで使えるんだろう?