B190 数値と文字列の比較

比較演算子を用いて数値と文字列を比較するとどうなるのでしょうか。本来比較対象として成り立たない2つを比較した際の実行結果について紹介します。

数値と文字列の比較について

下記の様な文字列と数値を比較した際は、数値が文字列に変換されて大小の比較が行われます。つまり、数値の100が文字列の’100’に変換がされ、文字列’あいうえお’と文字列’100’の比較となります。

PHP
<?php
  if('あいうえお' < 100){
      echo 100;
  } else {
      echo 'あいうえお';
  };
?>

出力結果

PHP
あいうえお

結果、文字列’あいうえお’と文字列’100’の比較結果はfalseとなり、’あいうえお’が出力されます。

PHP7.4までは文字列が数値に変換されておりましたたが、PHP8.0以降では、数値が文字列に変換される様になりました。

エンジニアからのアドバイス

PHPでは型の違うゆるい比較が可能ですが、エンジニア視点では型の違う比較は、比較対象が不明瞭になりやすい為、可能な限り利用しない方が良いでしょう。

---