• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if( strcmp( 引数, 引数 )=== 0)

strcmp関数の=== 0とは何ですか?

このQ&Aのポイント
  • strcmp関数の=== 0とは、厳密な比較演算子を使用して、strcmpの返り値が0と等しいかどうかを確認する意味です。
  • 比較演算子の===は、値と型が完全に一致する場合に真を返します。
  • 異なる型の値を比較する場合は、===を使用することで厳密な比較ができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

この場合、全く違いはありませんが、「 == を使う必然性がない限り、比較は必ず === を使う」というコーディングルールにしているのではないかと思います。そのルールには意味があると思います。少なくとも「=== を使う必然性がない限り、比較には必ず == を使う」よりはずっといい。

re999
質問者

お礼

回答ありがとうございました。参考になりましたー

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

蛇足ですが、数値型のデータを文字列として比較している時点で 仕様にあいまいさがあり不適当なソースなので、厳密に ===でチェックする意味はありません。 本来比べるべき質のものじゃないですね・・・ ===0については、strcmpの戻り値が明確に数値型だということを 理解していれば自然とそうなります。 <? $a = (string) 10; $b = (int) 10; if( $a!==$b) print "そもそも違うものを比較する意味があるのか?"; if( strcmp( $a, $b )==0) print "1"; if( strcmp( $a, $b )=="0") print "2"; if( strcmp( $a, $b )==false) print "3"; if( strcmp( $a, $b )=="") print "4"; if( strcmp( $a, $b )==NULL) print "5"; if( strcmp( $a, $b )===0) print "6"; if( strcmp( $a, $b )==="0") print "7"; if( strcmp( $a, $b )===false) print "8"; if( strcmp( $a, $b )==="") print "9"; if( strcmp( $a, $b )===NULL) print "10"; ?>

re999
質問者

お礼

回答ありがとうございます。 >蛇足ですが、数値型のデータを文字列として比較している時点で >仕様にあいまいさがあり不適当なソースなので、厳密に >===でチェックする意味はありません。 >本来比べるべき質のものじゃないですね・・・ 確かにその通りなのですが…。 あくまでも勉強用ということで、 質問してみましたー

回答No.1

>には、どういう意味があるのでしょうか? >(==0とはどう違うのでしょうか? という意味です) まず「==」と「===」の違いは「PHP 比較演算子」で検索すればでてくる。 で今回の >(strcmpに===を使う意味はないような)気もするのですが… だけどはっきり言うと意味はない。

re999
質問者

お礼

回答ありがとうございました。 >だけどはっきり言うと意味はない。 はっきり言っていただけると助かります。 もしかしたら、何か特別な使い方があるのかもしれない、 と思い質問してみましたー