PHP(ピー・エイチ・ピー)

PHPの驚くべき演算子

先日、PHPだとif('01' == '1')がtrueになってしまうという記事を書きました。
PHPでは'01'と'1'は同じなの!?

が、

調べてみると演算子(==)に関して驚くべきことが分かりました。

 

結論から言うと、

演算子(==)

は使うなということのようです。
※厳密には全く使わないという訳にはいかないような気もしますが。。。

 

というのは、

if("1" == 1) ~; 
は当然「true」です。

if("x1" == 1) ~;
は当然[]false」になります。

あと、
if("1x" == "1") ~;
も当然「false」です。

 

が、

驚くのはここからで、

if("1x" == 1) ~;
↑これ、「true」になります。

if("1あ" == 1) ~;
も「true」になります。

 

対処方法としては、

if("1x" === 1) ~;

というように、

「===」

を使って型まで厳密にチェックしたり、

if(strcmp("1x", 1) == 0) ~;

とすればいいとのことです!!

0
この記事を書いている人
株式会社ディープ

名前ダッチ

メールアドレスadachi@deep-deep.jp

Twitterはこちら >>

  • コメント: 0

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. ITコンサルティング
  2. トラブル
  3. WP:WordPress(ワードプレス)
  4. WP:WordPress(ワードプレス)
  5. WP:WordPress(ワードプレス)
  6. SNSシェア
  7. 開始
  8. コーディング
  9. WP:WordPress(ワードプレス)
  10. WP:WordPress(ワードプレス)

Twitter

ダッチ@職業ブロガー兼プログラマー
@gatsu0000

  • 以前「田舎って食費掛からんやろ」って言われて、ちょっとイラっとした。 田舎モンも肉食べるし、魚食べるし、野菜も買うよ。 意識して節約しないと、田舎かってそれなりには食費掛かるよ。
    about 3日 ago via Twitter Web App

アーカイブ

PAGE TOP